Javascript <;a>;标记仅在双击时工作,而不是单击一次

Javascript <;a>;标记仅在双击时工作,而不是单击一次,javascript,Javascript,您好,我有一个您正在ShowPopup函数中附加事件侦听器。只需将其更新为 function ShowPopup() { $('#divProjectAttachment').modal('toggle'); } 它会很好的工作 编辑: 为什么会发生这种情况 首先,这在第二次点击时有效,而不是在双击时有效 其次, 您已经在标记中附加了onclick事件处理程序。这将触发ShowPopup功能。 在ShowPopup函数中,您正在将click event listener附加到同一元素

您好,我有一个

您正在ShowPopup函数中附加事件侦听器。只需将其更新为

function ShowPopup() { 
    $('#divProjectAttachment').modal('toggle');
}
它会很好的工作

编辑:

为什么会发生这种情况

首先,这在第二次点击时有效,而不是在双击时有效

其次,

您已经在
标记中附加了
onclick
事件处理程序。这将触发
ShowPopup
功能。 在
ShowPopup
函数中,您正在将click event listener附加到同一元素。 因此,当您第一次单击锚定标记时,ShowPopup会将事件侦听器附加到
#lnkAttachment
。这里需要注意的一点是,您的ShowPopup函数在第一次单击时就被调用。但它不会显示弹出窗口,因为您正在将事件侦听器附加到元素,仅此而已。现在,在第一次调用ShowPopup之后,事件侦听器被附加。 下次单击
lnkAttachment
时,事件侦听器已经存在,因此它将显示弹出窗口。此外,它还会再次附加click事件监听器(每次调用ShowPopup时,这是不必要的)

您可以按此答案所示保留代码

您可以决定遵循良好的编程风格,将事件附件(JavaScript)与显示标记(HTML)分开 方法如下

保持你的锚定标签

href=“javascript:void(0);“id=”lnkAttachment“>单击此处查看附件

(注意,此处没有
onclick
事件处理程序)

在javascript中,您负责事件处理

$(document).on('ready', function(){
    $("#lnkAttachment").on("click", function () {
        $('#divProjectAttachment').modal('toggle');
    });
}

您正在ShowPopup函数中附加事件侦听器。只需将其更新为

function ShowPopup() { 
    $('#divProjectAttachment').modal('toggle');
}
它会很好的工作

编辑:

为什么会发生这种情况

首先,这在第二次点击时有效,而不是在双击时有效

其次,

您已经在
标记中附加了
onclick
事件处理程序。这将触发
ShowPopup
功能。 在
ShowPopup
函数中,您正在将click event listener附加到同一元素。 因此,当您第一次单击锚定标记时,ShowPopup会将事件侦听器附加到
#lnkAttachment
。这里需要注意的一点是,您的ShowPopup函数在第一次单击时就被调用。但它不会显示弹出窗口,因为您正在将事件侦听器附加到元素,仅此而已。现在,在第一次调用ShowPopup之后,事件侦听器被附加。 下次单击
lnkAttachment
时,事件侦听器已经存在,因此它将显示弹出窗口。此外,它还会再次附加click事件监听器(每次调用ShowPopup时,这是不必要的)

您可以按此答案所示保留代码

您可以决定遵循良好的编程风格,将事件附件(JavaScript)与显示标记(HTML)分开 方法如下

保持你的锚定标签

href=“javascript:void(0);“id=”lnkAttachment“>单击此处查看附件

(注意,此处没有
onclick
事件处理程序)

在javascript中,您负责事件处理

$(document).on('ready', function(){
    $("#lnkAttachment").on("click", function () {
        $('#divProjectAttachment').modal('toggle');
    });
}

当您使用jQuery时,您可以连接事件,而无需在html中单击onclick

<a>href="javascript:void(0);" id="lnkAttachment">Click here to View Attachments!</a>

当您使用jQuery时,您可以连接事件,而无需在html中单击onclick

<a>href="javascript:void(0);" id="lnkAttachment">Click here to View Attachments!</a>

是否每次单击都会调用单击处理程序?尝试在$(…).modal('toggle')之前添加console.log;是否每次单击都会调用单击处理程序?尝试在$(…).modal('toggle')之前添加console.log;