我如何确保此href元素将触发“click”事件,除非它没有“disablelink”类。
请勿处理:
<a class="iconGear download disablelink" href="#">Download</a>
PROCESS:
<a class="iconGear download" href="#">Download</a>
尝试了这个没有成功:
$("a.download").not(".disablelink").click(function (e) {
alert('in');
e.preventDefault();
});
答案 0 :(得分:6)
这应该有效:
$("a.download:not('.disablelink')").click(function (e) {
alert('in');
e.preventDefault();
});
如果动态添加disablelink
类:
$(document).on('click', "a.download:not('.disablelink')", function (e) {
alert('in');
e.preventDefault();
});
答案 1 :(得分:0)
$('a.download').click(function(e){
e.preventDefault();
if($(this).hasClass('disablelink')){
return;
}else{
//other stuff;
}
});
为什么不检查点击锚点的时间,以及它是否有返回的类并且什么都不做,我想这将是更易读的代码。
答案 2 :(得分:0)
你可以这样:
$("a.download").click(function(e) {
if($(this).hasClass("disablelink")) {
return false;
}
// Normal code
alert('in');
e.preventDefault();
});
答案 3 :(得分:0)
首先,这可能不起作用,因为有些链接动态地添加了disablelink,并且已经将点击处理程序绑定到它们之后。
其次,你应该只检查点击处理程序中的那个类,如下所示:
$("a.download").click(function (e) {
if($(this).hasClass('disablelink')){
e.preventDefault();
// link is disabled
}else{
alert('in');
// link is active
}
});