在两个ID上使用一个()运行一次

时间:2018-04-13 13:15:52

标签: javascript jquery

我有两个按钮,我想要的是无论点击哪一个,该功能只能执行一次。所以这就是我尝试过的,但是它不起作用,因为如果我按下#first按钮并且它运行一次该功能,但是如果按#second按钮它再次运行该功能。显然,one()就是这样的。

$('#first, #second').one('click', function(e) {
  dosomething();
})  

这实际上是应该做的,请有人指出我正确的方向。谢谢!

2 个答案:

答案 0 :(得分:4)

然后.one()限制处理程序每​​个元素最多执行一次。因此预期的行为

您可以使用.off()删除事件处理程序

$('#first, #second').one('click', function(e) {
  $('#first, #second').off('click');
}) 

答案 1 :(得分:3)

使用.off()(例如

)调用clickhandler后,可以取消绑定



$("#first, #second")
  .on("click.onlyonce", function(e) {
    console.info("click");
    // do whatever
    $("#first, #second").off("click.onlyonce");
  })

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="first">First</button>
<button id="second">Second</button>
&#13;
&#13;
&#13;