如何使用jQuery动态地停止.click事件?

时间:2015-05-29 06:15:43

标签: javascript jquery

我有$('.interaction').on('click', function(e){});但在某些情况下,我不想让用户点击该元素。

由于某种原因,用户仍然能够点击按钮并触发事件事件,尽管我做了.unbind()事件无效;

基本上,如果条件(activeState == 'R' || activeState == 'D')满足,我不想让用户点击以下元素#hold,#resume,#mute,#unmute,否则我想允许点击它们。

这是我到目前为止所做的。

$(function(){

    $('#test').click(function(){
        if(activeState == 'R' || activeState == 'D'){
            disableControlOps();
        } else {
            enableControlOps();
        }
    });


    function disableControlOps(){
        $('#hold,#resume,#mute,#unmute').addClass('icwsDisableButtons');


        $('#hold,#resume,#mute,#unmute').unbind( "click" );


    }

    function enableControlOps(){
        $('#hold,#resume,#mute,#unmute').removeClass('icwsDisableButtons');
    }


    //Handle interactions
    $('.interaction').on('click', function(e){

        var id = $(this).attr('id');

        $.getJSON("index.php", function(data){
            console.log('Bingo!!!');
         });
    });

});

如何停止触发事件?

2 个答案:

答案 0 :(得分:0)

试试这个

 function disableControlOps(){
        $('#hold,#resume,#mute,#unmute').addClass('icwsDisableButtons');
        $('#hold,#resume,#mute,#unmute').css("Pointer-event","none" );

 }

 function enableControlOps(){
        $('#hold,#resume,#mute,#unmute').removeClass('icwsDisableButtons');
        $('#hold,#resume,#mute,#unmute').css("Pointer-event","auto" );
    }

答案 1 :(得分:0)

为什么不回来?

$('.interaction').on('click', function(e){
    if(activeState == 'R' || activeState == 'D') return;

    var id = $(this).attr('id');

    $.getJSON("index.php", function(data){
        console.log('Bingo!!!');
     });
});