这是我的jQuery代码:
$('.ajax_modal a').not('.popup').live('click', function(e){
//do something
});
当我点击锚点a.popup时,我不希望发生任何事情:
<div class="ajax_modal">
<a class="popup">Should do nothing</div>
<a class="something">Should do something<a>
</div>
相反,我收到以下错误,这会打破我的页面:
错误:语法错误,无法识别的表达式:.ajax_modal a.not(.popup)
答案 0 :(得分:2)
.live()
对链式遍历方法不起作用。
将其更改为
$('.ajax_modal a:.not(.popup)')
答案 1 :(得分:1)
1:标签未正确关闭。
<div class="ajax_modal">
<a class="popup">Should do nothing</div>
<a class="something">Should do something<a>
</div>
应该是:
<div class="ajax_modal">
<a class="popup">Should do nothing</a> <!-- changed from </div> -->
<a class="something">Should do something</a> <!-- changed from <a> -->
</div>
2:您最好使用 :not()
代替.not()
,如下所示:
$('.ajax_modal a:not(".popup")').on('click', function(e){
console.log(this);
});
3:最后,live
已被弃用。所以使用on
绑定事件。
<强> EXAMPLE 强>
答案 2 :(得分:0)
可能是因为您的“弹出式”超链接是使用标记而非标记关闭的。同样,“某事”超链接未正确关闭。另外值得注意的是:有些浏览器抱怨不在超链接标签中包含“href”属性,因此至少要在其中添加href="#"
。