我有以下html元素
<div id="featured">
...
<div class="playlist_box" style="display: block; ">
<ul>
<li><a href="javascript:void(0)" class="list" fileid="undefined"> element 1</a></li>
<li><a href="javascript:void(0)" class="list" fileid="undefined"> element 2</a></li>
<li><a href="javascript:void(0)" class="list" fileid="undefined"> element 3</a></li>
</ul>
</div>
</div>
我想将一个onclick事件处理程序应用于在标有.playlist_box的区域时不会被触发的特征。我试图取消选择各种元素,非作品,其中一些是:
jQuery("#featured").not('.playlist').click(function()...
jQuery("#featured").not('li').click(function()...
似乎 not()不起作用。有什么想法吗?
答案 0 :(得分:2)
为什么不使用这样的东西?
$("#featured:not('.playlist')").click(function() {
//function
});
答案 1 :(得分:2)
.not()
从匹配元素集中删除元素。
您只选择ID为#featured
的div,因此.not()
将再次返回div。此外,该课程为playlist_box
而不是playlist
。
如果您坚持.not()
,那么您将不得不做类似
$("#featured").children().not(".playlist_box").click(...);
但为什么不呢
$("#featured").on("click", "li.list", function(ev) {
if ($(this).closest("div").hasClass("playlist_box")) {
// do something
} else {
// do something else
}
});
一个处理所有人的处理程序:D
编辑:添加了对父
的检查答案 2 :(得分:1)