繁体   English   中英

首次点击后如何禁用触发器点击

[英]How to disable trigger click after first click

a元素的onclick我只需要调用一个函数并触发#myDiv一次。 假设我多次点击“苹果”,它应该只触发一次。 然后转到“橙色”或“香蕉”,再回到“苹果”,就像之前我只需要触发一次一样。 假设可以有任意数量的a并且它们是动态的。 我该如何实现?

 function activateMyClick(myId) { $('#myDiv').trigger('click'); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a onclick="activateMyClick(7)" id="7" class="active">Apple</a> <a onclick="activateMyClick(8)" id="8" class="active">Orange</a> <a onclick="activateMyClick(9)" id="8" class="active">Banana</a> 

正如您使用jQuery标记的那样,您可以删除过时的on*事件属性,并使用one()实现此目的:

 $('a.active').one('click', function() { $('#myDiv').trigger('click'); }); // for demonstration purposes only: $('#myDiv').click(function() { console.log('div click raised!'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a id="7" class="active">Apple</a> <a id="8" class="active">Orange</a> <a id="8" class="active">Banana</a> <div id="myDiv"></div> 

一个简单的解决方案,但我认为可以按照您的描述进行操作。

  • 多次点击Apple,仅触发一次
  • 单击其他链接,然后再次单击Apple后,仅触发一次触发

 var currentId = ""; function activateMyClick(myId) { if (currentId != myId) $('#myDiv').trigger('click'); currentId = myId; } $('#myDiv').click(function() { console.log('div click raised!'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a onclick="activateMyClick(7)" id="7" class="active">Apple</a> <a onclick="activateMyClick(8)" id="8" class="active">Orange</a> <a onclick="activateMyClick(9)" id="8" class="active">Banana</a> <div id="myDiv"></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM