Javascript jquery.not()无法与live()一起使用
我在一个页面中添加了一些带有ajax的dom,我试图通过Javascript jquery.not()无法与live()一起使用,javascript,jquery,Javascript,Jquery,我在一个页面中添加了一些带有ajax的dom,我试图通过.not()排除所选结果,但这对我不起作用 这里有一个简单的例子: <div class="list-item"> <span class="item-title">Some title</span> <span class="edit fr"><a href="Edit link">Edit</a></span>
.not()
排除所选结果,但这对我不起作用
这里有一个简单的例子:
<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('.list-item span a').not('.list-item span.edit a').live('click', function(){
//do stuff
});
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('.list-item span a').not('.list-item span.edit a').live('click', function(){
//do stuff
});
观察:
<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('.list-item span a').not('.list-item span.edit a').live('click', function(){
//do stuff
});
.not()
部分,则选择可以与live()
配合使用.not()
而是将live()
替换为click()
,则代码可以工作live()运行.not()
(排除.edit
类)代码>(包括使用ajax的dom)
提前谢谢 试试看
$('.list-item span:not(.edit) a').live(...);
正如其他人指出的,DOM遍历不支持live。live还有一些其他限制,请查看文档。请按照:
不支持使用DOM遍历方法查找要发送到.live()
的元素。相反,应该始终在选择器之后直接调用.live()
方法,如上面的示例所示
因此,将类排除添加到选择器:
jQuery('.list-item span:not(.edit) a').live('click', function(){
//do stuff
});