0
我一直堅持以下情況。canjs:事件觸發器中的非選擇器
1st我將點擊事件處理程序添加到頁面的所有元素,它調用一個小的彈出窗口。我無法從這個*選擇器中分離彈出窗口,因此它會打開彈出窗口,等等。
我已經試過如下:
var controller = can.Control.extend({
'*:not(.popup *) click': function(el, event) { //This does not work
$(el).openPopUp()
//pseudo code, opens the popup in to <div class"popup"><input /><input /></div>
},
});
var c = new controller('body');
是否有隔離這個問題的任何提示。真正需要的點擊處理程序內彈出的元素旁邊的所有其他元素, 此致 科瓦萊寧
我得到了一個AHA時刻。訂單確實很重要。事件是一個隊列,瀏覽器按照代碼中給出的順序抓取所有事件。 如果兩個處理程序都連接到相同的元素,如果首先執行Click處理程序並在此之後它通過.popup點擊處理程序。 event.stopPropagation是可以的,但我認爲我需要去除其他處理程序,同時我正在處理彈出窗口。 – 2014-09-23 11:14:58
事件從目標到其父母「氣泡」。如果.popup被點擊,那麼.popup點擊處理程序將運行,並且(如果事件沒有停止傳播),body click處理程序將在之後運行。 – 76484 2014-09-24 02:18:03