Javascript 没有类的元素上的jquery单击事件
我如何确保此href元素是将触发“click”事件的元素,除非它没有“disablelink”类 不处理:Javascript 没有类的元素上的jquery单击事件,javascript,jquery,Javascript,Jquery,我如何确保此href元素是将触发“click”事件的元素,除非它没有“disablelink”类 不处理: <a class="iconGear download disablelink" href="#">Download</a> 为什么不检查锚点被单击的时间,如果它有类,它将返回什么也不做,我想这将是更可读的代码。您可以这样做: $("a.download").click(function(e) { if($(this).hasClass("disablel
<a class="iconGear download disablelink" href="#">Download</a>
为什么不检查锚点被单击的时间,如果它有类,它将返回什么也不做,我想这将是更可读的代码。您可以这样做:
$("a.download").click(function(e) {
if($(this).hasClass("disablelink")) {
return false;
}
// Normal code
alert('in');
e.preventDefault();
});
首先,这可能不起作用,因为一些链接动态添加了disablelink,并且在它们已经绑定了click处理程序之后 其次,您应该在click处理程序中检查该类,如下所示:
$("a.download").click(function (e) {
if($(this).hasClass('disablelink')){
e.preventDefault();
// link is disabled
}else{
alert('in');
// link is active
}
});
这应该起作用:
$("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();
});
检查此演示:如果还有什么大不了的?如果某个表达式是真的,你要求做某事。。。只是没有if语句…什么?我不知道你的意思。如果他动态添加disablelink类,这将不起作用……加上OP已经使用的语句完全相同,只是速度较慢。@Rodik-添加了一个即使动态添加类也应该起作用的变体。@jAndy-same:扩展为“是”(即使这是sinlge选择器版本)。但是慢一点?is
:not
比慢。not()
?@techfoobar:在大多数情况下,使用诸如:not
之类的内联选择器语句比它们的函数变体慢。仅仅因为它将调用Sizzle来减少/过滤结果集,而函数将只.slice()
/.filter()
列表。看见
$("a.download").click(function (e) {
if($(this).hasClass('disablelink')){
e.preventDefault();
// link is disabled
}else{
alert('in');
// link is active
}
});
$("a.download:not('.disablelink')").click(function (e) {
alert('in');
e.preventDefault();
});
$(document).on('click', "a.download:not('.disablelink')", function (e) {
alert('in');
e.preventDefault();
});