2010-09-28 87 views
0

jsFiddlestopPropagation()不停止事件冒泡?

我正在使用允許用戶在區域中繪製框的jQuery插件。我在用戶放開鼠標按鈕時出現的框中放置了一個下拉列表。問題是,當您嘗試單擊下拉列表以選擇一個選項時,將繪製另一個框。我試着用下面的代碼停止點擊事件冒泡(這是在附近的的jsfiddle的JavaScript文件的底部),但它不工作:

$('.dropdown').click(function(e) { 
    e.stopPropagation(); 
    return true; 
}); 

我在做什麼錯?謝謝閱讀。

+0

該死!看起來很棘手,而我到目前爲止嘗試過的東西沒有工作:( – alex 2010-09-28 02:29:28

+0

我很想問問OP,「你在做什麼錯了?' - 好吧我做了。 – Reigel 2010-09-28 02:37:32

+0

看起來插件正在停止事件傳播到select元素:p – 2010-09-28 02:39:15

回答

3

解決方法是在鼠標拖動開始時檢查目標是什麼。就像這樣,

if (event.target.tagName.toLowerCase() != 'div') { return; } 

或者在所有發生的事件中。

OP's demo, updated

+0

不錯的解決方法!+1 – alex 2010-09-28 05:51:32