jquery,添加和删除事件处理程序[重复]
Posted
技术标签:
【中文标题】jquery,添加和删除事件处理程序[重复]【英文标题】:jquery, adding and removing event handlers [duplicate] 【发布时间】:2012-05-10 05:32:49 【问题描述】:我有 2 个按钮
$(".button1").on("click", function(event)
$(".button2").on("click", function(event)
我想做的是从 button1 开始并没有事件侦听器,当 button2 被点击时,事件侦听器被删除并且按钮 1 的事件侦听器被激活。
这是一种相当常见的技术,在 actionscript 3 中使用方法 removeEventListener() 并希望在 jquery 中使用类似的方法或技术。
【问题讨论】:
【参考方案1】:如果您想删除与jQuery.on
绑定的事件处理程序,那么您可能需要jQuery.off
http://api.jquery.com/off/
【讨论】:
【参考方案2】:on()
方法绑定事件和off()
解除绑定。如果你给off()
提供参数,它将只取消绑定提供的事件,但没有参数取消绑定所有事件。
$('.button1').on('click', function()
console.log('button1');
$(this).off('click');
$('.button2').on('click');
)
$('.button2').on('click', function()
console.log('button2');
$(this).off('click');
$('.button1').on('click');
)
【讨论】:
【参考方案3】:这就是我所拥有的,但它不会重新打开事件侦听器
$(".slide1").on("click", function()
$(this).addClass('on');
$('.slide2').removeClass('on');
$(this).off('click');
$('.slide2').on('click');
);
$(".slide2").on("click", function()
$(this).addClass('on');
$('.slide1').removeClass('on');
$(this).off('click');
$('.slide1').on('click');
);
【讨论】:
以上是关于jquery,添加和删除事件处理程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章