当我向某些mousedowns添加live()
时,我的not:
条件已停止工作。
$("body :not(" + _self.somevar + ")").live('mousedown',
function(event){
event.stopPropagation();
// some more code
}
当它live()
不起作用时。现在我使用了live()
,当我对这个项目进行了嘲讽时,它会在不应该发生时触发。
任何人都知道为什么不再遵守not:
?
答案 0 :(得分:0)
您可以将.live()
方法更新为.on()
(以使用新版本的jQuery)。因此,您需要在document
mousedown
选择body :not(#notAcceptedElement)
的事件中进行申请。例如:
<强> HTML 强>:
<div id="notAccept">Not Accept Mousedown</div>
<div id="accept">Accept Mousedown</div>
JS (jQuery 1.6):
$('body :not(#notAccept)').live('mousedown', function(ev) {
console.log(ev.target);
$('#accept').clone().appendTo(document.body);
});
JS (jQuery edge / 1.8):
$(document).on('mousedown', 'body :not(#notAccept)', function(ev) {
console.log(ev.target);
$('#accept').clone().appendTo(document.body);
});
答案 1 :(得分:0)
我希望您只知道可以在HTML页面中使用的一个正文标记。在你的情况下,如果你尝试为id / class附加事件,它会更好。和语法将是这样的,
对于元素的id
$("#not:'+ _self.somevar'+").live('mousedown',
function(event){
event.stopPropagation();
// some more code
}
对于元素类
$(".not:'+ _self.somevar'+").live('mousedown',
function(event){
event.stopPropagation();
// some more code
}