我一直坚持以下情况。
第一,我将点击事件处理程序添加到页面的所有元素,这会调用一个小弹出窗口。我无法将弹出窗口与此*选择器隔离,因此它会弹出弹出窗口等等。
我尝试过以下方法:
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');
是否有任何提示可以隔离此问题。弹出窗口内的元素旁边的所有其他元素确实需要单击处理程序, 你的 海基
答案 0 :(得分:1)
我认为您需要做的是将一个单击事件处理程序附加到正文,并将一个单击事件处理程序附加到.popup。正文单击处理程序将打开弹出窗口。 .popup单击处理程序将捕获该事件,以便它不会传播到body元素。
var controller = can.Control.extend({
'click': function ($el, event) {
/* open popup now */
},
'.popup click': function ($el, event) {
event.stopPropagation();
}
});