0

当我添加live()一些鼠标按下时,我的not:条件停止工作。

 $("body :not(" + _self.somevar + ")").live('mousedown',
     function(event){
     event.stopPropagation();
     // some more code
 }

当它不是live()它的工作。现在我使用了live(),当我在该项目上按下鼠标时,它会在不应该触发时触发。

有谁知道为什么not:不再坚持?

4

2 回答 2

0

我希望你只知道一个可以在 HTML 页面中使用的 body 标签。在您的情况下,如果您尝试为 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
}
于 2012-06-30T16:22:03.510 回答
0

您可以将您的.live()方法更新为.on()(以使用新版本的 jQuery)。因此,您需要documentmousedown选择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 边缘/1.8):

$(document).on('mousedown', 'body :not(#notAccept)', function(ev) {
    console.log(ev.target);
    $('#accept').clone().appendTo(document.body);
});
​

现场示例:jsFiddle jQuery-1.6jsFiddle jQuery-edge

于 2012-06-30T03:22:20.903 回答