[英]jquery .not() is not working with live()
我在一个页面中添加了一些带有ajax的dom,我试图通过.not()
排除选择的结果,但它不适用于我。
这是一个简单的例子:
HTML:
<div class="list-item">
<span class="item-title">Some title</span>
<span class="edit fr"><a href="Edit link">Edit</a></span>
<span class="trash fr"><a href="#trashit" rel="trash">Trash</a></span>
<span class="live fr active"><a href="#liveit" rel="publish">Live</a></span>
<span class="draft fr"><a href="#draftit" rel="draft">Draft</a></span>
</div>
jQuery的:
jQuery('.list-item span a').not('.list-item span.edit a').live('click', function(){
//do stuff
});
观察:
.not()
部分,选择适用于live()
。 .not()
但用click()
替换live()
代码可以工作。 但我需要使用live();
运行.edit
.not()
(不包括.edit
类live();
(包括带有ajax的dom)
提前致谢!
根据.live()
文档 :
查找要发送到
.live()
元素不支持DOM遍历方法。 相反,应始终在选择器之后直接调用.live()
方法,如上例所示。
因此,将类排除添加到选择器:
jQuery('.list-item span:not(.edit) a').live('click', function(){
//do stuff
});
尝试
$('.list-item span:not(.edit) a').live(...);
正如其他人所指出的那样,实时不支持DOM遍历。 live也有其他一些限制,请查看doc。
jQuery('.list-item').filter(function(){
return $(this).not("span.edit a")
})
.live('click', function(){
//do stuff
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.