Hi I have a <a>
tag that is working on double click but not on single click.
I have a javascript function called on the tag.
Can someone help on same.
Below is the tag and the javascript function
function ShowPopup() {
$("#lnkAttachment").on("click", function () {
$('#divProjectAttachment').modal('toggle');
});
}
<a>href="javascript:void(0);" id="lnkAttachment" onclick="ShowPopup();">Click here to View Attachments!</a>
答案 0 :(得分:4)
您在ShowPopup函数中附加了事件侦听器。只需将其更新为
即可function ShowPopup() {
$('#divProjectAttachment').modal('toggle');
}
它会正常工作。
编辑:
为什么会这样?
嗯,首先,这适用于第二次点击,而不是double click
。
接下来,
您已在onclick
标记中附加了<a></a>
个事件处理程序。哪个触发ShowPopup
功能。
在ShowPopup
函数中,您可以将click事件侦听器附加到同一元素。
因此,当您第一次单击锚标记时,ShowPopup会将事件监听器附加到#lnkAttachment
。这里要注意的一件重要事情是,首次单击时会调用ShowPopup函数。但它不会向您显示弹出窗口,因为您将事件监听器附加到元素上并且就是这样。现在,在第一次调用ShowPopup之后附加了事件监听器。
下次单击lnkAttachment
时,事件监听器已经存在,因此它将显示弹出窗口。此外,它将再次重新附加click事件侦听器(每次调用ShowPopup时都是如此 - 这是不必要的)。
您可以按照此答案演示
来保留您的代码OR
您可以决定遵循良好的编程理念,并从显示标记(HTML)中分离事件附件(JavaScript) 这样做的方法如下。
将您的锚标记保留为
HREF =&#34;的javascript:无效(0);&#34; id =&#34; lnkAttachment&#34;&gt;点击此处查看附件!
(注意,这里没有onclick
事件处理程序)
并在您的javascript中处理事件处理。
$(document).on('ready', function(){
$("#lnkAttachment").on("click", function () {
$('#divProjectAttachment').modal('toggle');
});
}