暂时暂停事件处理

时间:2014-12-08 13:41:38

标签: jquery event-handling

我使用函数将代码同时绑定到多个元素。在我的应用程序的其他地方,我想在某些情况下暂停此绑定,并在其他情况下恢复它。这是我的代码:

function populate_modal(x) {

    var button_id = '#button_page' + x;
    var page_id = '#course_intro_page' + x;

    $(button_id).on('click', function() {   

        var a = $(page_id).html(); 
        $('.fadeandscale_inner').html(a); 

    });

}

for (i = 0; i < 5; i++) { 
    populate_modal(i);
}

如何实现我想要的?它应该看起来像:

if (condition) {
    // suspend all code associated with "#button_page" buttons, and bind some other code to these buttons
}
else {
    // switch back to default code associated with buttons
}

1 个答案:

答案 0 :(得分:0)

你可以拥有一个通用类,以便能够处理所有按钮,但是 你也可以在绑定发生时添加类。

检查一下:

function populate_modal(x) {

    var button_id = '#button_page' + x;
    var page_id = '#course_intro_page' + x;

    //add class to handle event bind removal
    $( button_id ).addClass( 'bindedButton' );

    $(button_id).on('click', function() {   

        var a = $(page_id).html(); 
        $('.fadeandscale_inner').html(a); 

    });

}

for (i = 0; i < 5; i++) { 
    populate_modal(i);
}

if (condition) {
    $( '.bindedButton' ).off( 'click' );
}
else {
    for (i = 0; i < 5; i++) { 
       populate_modal(i);
    }
}