当我使用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>
答案 0 :(得分:0)
.attr用于启用/禁用特定元素的属性。 例如 ('#button')。attr('disabled','disabled'),其中第一个参数是属性名称,第二个参数是我们要设置的值。 请尝试使用 yourElement.click(function(){ .... })
答案 1 :(得分:0)
我对您的示例做了一些修改:
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>