2014-02-27 53 views
0

我從網上這段代碼:jQuery的可拖動選項禁用佈局

<div id="draggable"> 
    <div id = "editable" contenteditable="true"> </div> 
</div> 

<script> 
var draggableDiv = $('#draggable').draggable(); 

$('#editable', draggableDiv).mousedown(function(ev) { 
    draggableDiv.draggable('disable'); 
}).mouseup(function(ev) { 
    draggableDiv.draggable('enable'); 
}); 
</script> 

代碼:http://jsfiddle.net/cSMYG/1/

如何更改默認的事件,當我點擊並按住鼠標上的文本字段然後按住鼠標,將鼠標懸停在文本字段外,將使文本字段不變爲灰色?我知道是什麼原因造成的,但我無法做出解決方法。

+0

你的解釋非常糟糕。請儘量更清楚明確,並且不要在每兩個單詞之後使用文字對「文本字段」。 – user2831723

+0

@ user2831723使用「文本字段」引用文本字段有什麼問題?如果有什麼不清楚的地方,我覺得提出問題以獲得更多細節或提出改進意見不僅僅會說「你的解釋非常糟糕,請更明確和具體」。話雖如此,這個問題*可以使用一些改進。描述當前正在發生的事情,你想要發生什麼,以及你已經嘗試過什麼,幫助別人回答你的問題還有很長的路要走。 – Zhihao

回答

0

您需要將mouseup事件處理程序附加到祖先元素上。例如:

$(document).mouseup(function(ev) { 
    draggableDiv.draggable('enable'); 
}); 

jsFiddle

您可能還需要跟蹤它是否是在一個變量被禁用,然後檢查使它在每次mouseup事件之前:

var isDraggableEnabled = ... 
+0

點擊它時物體是否可能變爲灰色? –

+0

@Larssen它並沒有變成灰色,但實際上變得更加透明。我相信這是由jQuery UI設置的,所以你需要重寫它所應用的樣式:'.ui-state-disabled {opacity:1; }' – Zhihao