[英]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.