2013-08-03 41 views
0

當我嘗試銷燬可調整大小的div時,.ui-resizable-se上的懸停功能無效。我想我必須使用jquery live()。但我無法清楚地將其整合。jQuery可調整大小.Live()

如果您在頁面加載時懸停.ui-resizable-se或.ui-resizable-e,函數將起作用,但如果您再次懸停,則不會發生任何事情。我怎樣才能克服這個問題?

$('#resizable').resizable({ 
    aspectRatio:false 
    }); 
    $('.ui-resizable-se').hover(function(){ 
    keep("resizable"); 
    }); 
    $('.ui-resizable-e').hover(function(){ 
    dontKeep("resizable"); 
    }); 

來源鏈接:http://jsfiddle.net/nNrgP/

+1

'live'被棄用版本1.7,並在1.9中刪除。您應該使用['on'](http://api.jquery.com/on/)。 – kalley

回答

0

,因爲你已經叫resizable("destroy");調用該

完全刪除調整大小功能的徘徊不後的第一次工作。這會將元素返回到其初始狀態。

Resizable Destroy

如果希望仍然可用,就應該把resizable("disable")resizable("enable"),或完全重新初始化的可調整大小的div之間切換。沒有更多關於你的目標(或其他代碼)的知識,很難說出最好的選擇是什麼。

0

你也可以只更新options

function dontKeep(val){ 
    $("#"+val).resizable("option", 'aspectRatio', false); 
    alert("dont keep"); 
} 
function keep(val){ 
    $("#"+val).resizable("option", 'aspectRatio', true); 
    alert("keep"); 
} 
0

使用事件代表團嘗試,因爲你可能會與動態eleemnts

打交道
$(document).on('mouseenter mouseleave', '.ui-resizable-e', function(){ 
    dontKeep("resizable"); 
}); 

$(document).on('mouseenter mouseleave', '.ui-resizable-se', function(){ 
    keep("resizable"); 
}); 

演示:Fiddle

+0

只需使用'mouseenter'即可解決問題。非常感謝你.. –