如何使用Jquery禁用并重新启用div的单击功能

时间:2016-09-02 11:22:49

标签: javascript jquery html click

对于此问题,还有一些其他相关问题可解释使用input field属性重新启用buttondisabled的可能性。

但我的要求是在某些操作后重新启用div点击功能。目前我使用.off()在第一次点击后禁用了div的点击功能。

但是我无法重新启用它。

禁用div的代码

    $(document).ready(function(){
       // Will ask for city through voice when user click on the instruction box.
        var accessBtn = $('#skitt-listening-box');
        $("#skitt-listening-box").click(function(){
          $(this).off('click'); // code to disble div from click
          //some functionality
        });

  });

启用div的代码:

if(IsEmail($(".voice_email").val())) {
              //some functionality
              //Should re-enable the div to click here              
          });

2 个答案:

答案 0 :(得分:1)

如果我是你,我会尝试添加css类来描述状态。

以你的方式:

$(document).ready(function(){
   // Will ask for city through voice when user click on the instruction box.
    var $accessBtn = $('#skitt-listening-box');
    $accessBtn.click(function(){
       if($(this).hasClass('click-available'){
         //do action
         $(this).removeClass('click-available');
       }
    });
});

并启用点击:

if(IsEmail($(".voice_email").val())) {
    $accessBtn.addClass('click-available');            
});

答案 1 :(得分:0)

您可以使用此代码:

function addClickFunctionality() {
  $("#skitt-listening-box").on('click', function(){
    $(this).off('click'); // code to disable div from click
    // some functionality
  });
}

$(document).ready(function() {
  // Will ask for city through voice when user click on the instruction box.
  addClickFunctionality();
});


// re-enable click handle in some action
if(IsEmail($(".voice_email").val())) {
  // some functionality
  addClickFunctionality();              
});