使用jquery将click事件启用到锚点中

时间:2018-06-18 15:49:46

标签: jquery html html5 jquery-ui anchor

我必须链接(锚点),我想在点击另一个时启用和禁用每个。

这是其中一个锚点:

<a href="#" id="lnkAddNew" onclick="addNewComment()">
    <i class="glyphicon glyphicon-plus"></i>Add New
</a>

然后我有一个方法可以禁用它:

$('#lnkAddNew').prop('onclick', null).off('click');

但是我想再次启用点击,但我不想执行该事件,我只是想启用它,所以当我这样做时,我不仅启用(或绑定)点击事件,但也执行:

$('#lnkAddNew').prop('onclick', addNewComment).on('click');

在最后一行,如何避免执行click事件,我只想绑定click事件。

由于

1 个答案:

答案 0 :(得分:2)

jQuery有一种注册事件处理程序的方法:.on()

要取消注册特定处理程序,诀窍是将其作为命名函数...
您只需要传递函数名称作为.off()的第二个参数即可。

function disableLinks(){
  console.log("CLICK!");
  $(".disableToggle").off("click",disableLinks);
}

$(".disableToggle").on("click",disableLinks);

$("#restore").on("click",function(){
  $(".disableToggle").on("click",disableLinks);
});
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="#" id="lnkAddNew" class="disableToggle">
    <i class="glyphicon glyphicon-plus"></i>Add New
</a><br>
<br>
<a href="#" id="lnkAddAnother" class="disableToggle">
    <i class="glyphicon glyphicon-plus"></i>Add another
</a><br>
<br>
<button type="button" id="restore">Restore the click handler</button>