簡體   English   中英

屬性onclick自動觸發點擊事件

[英]Attribute onclick triggers click event automatically

當我使用jquery設置onclick屬性時,該方法將被調用。 僅當我使用Tab鍵觸發鏈接時,才會發生這種情況。 當我單擊鏈接時,不會發生任何問題。 這是已知的錯誤嗎? 請在下面找到代碼段。 但是,我無法在其中重現該問題,並且我的代碼完全相同。

僅供參考,我正在使用jQuery 3.1.1。

 function setDeleteLogo() { $('#deleteLogoBtn').attr('onclick', $('#confirmLink').attr('data-onclick')); } function deleteLogo() { alert(); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <a id="confirmLink" onclick="setDeleteLogo()" href="javascript:;" data-onclick="deleteLogo()">Confirm</a> <button id="deleteLogoBtn">Yes, Delete</button> 

.attr用於啟用/禁用特定元素的屬性。 例如('#button')。attr('disabled,'disabled')其中第一個參數是屬性名稱,第二個參數是我們要設置的值。 請嘗試使用yourElement.click(function(){....})

我對您的示例做了一些修改:

  • 該按鈕將接收一個單擊處理程序,該處理程序確定調用的內容。
  • 確認鏈接會在首次訪問時收到點擊處理程序。
  • 鏈接的單擊處理程序觸發按鈕上的單擊事件。
  • 該鏈接包含一個數據屬性( data-confirmed ),該屬性的存在指示已被訪問。

您可能希望其他邏輯具有動態調用目標,而不是硬編碼的deleteLogo並重置確認鏈接的狀態。

 function setDeleteLogo() { if (!$('#confirmLink').attr('data-confirmed')) { $('#confirmLink').on('click', () => { $("#deleteLogoBtn").trigger("click"); 1; }); $('#confirmLink').attr('data-confirmed', '1'); } } function deleteLogo() { alert(); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <a id="confirmLink" onclick="setDeleteLogo()" href="javascript:;">Confirm</a> <button id="deleteLogoBtn" onclick="deleteLogo()" data-onclick="deleteLogo()">Yes, Delete</button> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM