簡體   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