2015-05-29 59 views
0

我有一个$('.interaction').on('click', function(e){});但在某些情况下,我不想让用户点击元素。如何停止使用jQuery动态地发生事件?

由于某种原因,用户仍然能够点击按钮并触发事件事件,但我没有使用.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!!!'); 
     }); 
    }); 

}); 

如何阻止事件发生?

+0

您是否尝试过使用[off](http://api.jquery.com/off/)进行解除绑定? –

+0

您也可以禁用该按钮。只是一个主意! – Newinjava

+0

@Newinjava该按钮是一个图像,我使用.click() – Jaylen

回答

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

其实我所做的就是这个,而不是,但使用你的想法\t \t \t'如果($(本).hasClass( 'icwsDisableButtons')){ \t \t \t \t回报; \t \t \t}' – Jaylen

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