jquery,添加和删除事件处理程序

时间:2012-04-30 14:02:56

标签: jquery events addeventlistener

我有2个按钮

 $(".button1").on("click", function(event){
 $(".button2").on("click", function(event){

我想要做的是点击按钮1开始,没有事件监听器,当点击button2时,删除事件监听器并激活按钮1的事件监听器。

这是一个相当常见的技术,在actionscript 3中使用方法removeEventListener(),并希望在jquery中使用类似的方法或技术。

3 个答案:

答案 0 :(得分:7)

如果要删除与jQuery.on绑定的事件处理程序,那么您可能需要jQuery.off

http://api.jquery.com/off/

答案 1 :(得分:5)

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');
    })

答案 2 :(得分:0)

这就是我所拥有的,但它没有把事件监听器重新放在

 $(".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');
});