如何用类选择器覆盖id选择器的jQuery事件处理程序
How can I override a jQuery event handler of an id selector with a class selector?
我有几个带有id和类选择器的元素的点击事件处理程序:
$(function() {
$("#cancelOrderLink").click(function() {
if (confirm("If you continue, all items will be removed " +
"from your cart. This action cannot be undone. Continue " +
"and empty cart?"))
$("form#clearCartForm").submit();
});
$(".updateItemLink").click(function(){
$(this).closest("form").submit();
})
});
但是,如果元素有一个特定的类名:,我想添加一些逻辑来防止这些处理程序被触发
$(function() {
$(".superUser").click(function() {
$("#message").html("This action is not allowed when acting as a Super User.<br />");
return false;
});
});
如何用第二个代码段覆盖第一个代码段中的处理程序?
将event.stopPropagation();
添加到代码中:
$(".superUser").click(function(e) {
e.stopPropagation();
...
或者,如果元素相等,并且没有任何其他click
侦听器,则取消绑定前面的方法:
$(".superUser").unbind('click').click(function() {
如果您想在运行时为特定ID绑定事件,而不是为类名绑定事件,请使用:
$("#cancelOrderLink").not('.superuser').click(function() {
您可以使用.not()
过滤器。
$(function() {
$("#cancelOrderLink").not(".superUser").click(function() {
if (confirm("If you continue, all items will be removed " +
"from your cart. This action cannot be undone. Continue " +
"and empty cart?"))
$("form#clearCartForm").submit();
});
});
我建议使用"return false"而不是e.stopPropagation()。这是一种更简单的方法来停止传播并防止默认值。例如:
$("#yourclass").click(function(){
return flase;
});
相关文章:
- 在dropdwon菜单中发出针对特定选择器jquery的问题
- 周/年选择器jQuery插件
- DOM元素的属性因选择器-jQuery而异
- 如何使用日期选择器jquery突出显示特定日期
- 如何仅使用日期选择器 Jquery 启用月份的最后几天
- 如何在日期选择器 jquery 的 Select 事件上调用 js 函数
- 如何指定多个选择器 jquery
- 在日期选择器 jQuery 中查看可用日期
- 将其与伪选择器 jquery 一起使用
- 如何将东部标准时间设置为日期选择器 (jquery ui) - 使用 javascript
- 请帮助我添加日期选择器(Jquery Ui)
- 使用缓存选择器(jQuery)选择子元素
- 选择器Jquery中的选择器
- 如何将日期选择器jquery插件添加到bootstrab
- 如何在一个选择器jQuery中显示和隐藏多个元素
- 父选择器Jquery
- 如何使用angularjs在页面加载中调用日期选择器Jquery插件
- 逆选择器jQuery
- IE中的圆角,长选择器?(jquery)
- 如何禁用和启用日期时间选择器jquery插件