为什么jquery单击事件触发两次
这是我的为什么jquery单击事件触发两次,jquery,Jquery,这是我的html: <a href="#" class="nav-links proceed button-success"> <span class="menue-title" style="margin-right: 5px; margin-top: 3px;">Proceed</span> <i class="fas fa-forward"></i> </a> 这就是造成我问题的原因 $('.pr
html
:
<a href="#" class="nav-links proceed button-success">
<span class="menue-title" style="margin-right: 5px; margin-top: 3px;">Proceed</span>
<i class="fas fa-forward"></i>
</a>
这就是造成我问题的原因
$('.proceed').trigger('click');
当我手动单击该按钮时,事件触发一次。但是当我调用触发器('click')
函数时,click事件会触发两次
更详细的诊断:
手动单击按钮时,console.log
仅显示一次A
或SPAN
或i
(取决于我单击的按钮的哪个部分)。但是当我调用trigger
函数时,console.log
会显示A
两次
我试过这些:
$('.procedure').off().on('click',函数(e){})代码>
e.preventDefault()代码>
e.stopPropagation()代码>
e.停止即时复制()代码>
返回false代码>
但什么也解决不了问题。究竟是什么导致了问题,我该如何解决?如何使trigger
函数只触发click
事件一次?确保您没有。在html中继续类两次。我想,不知怎的,您会多次将“click”事件附加到控件。在附加“单击”事件处理程序之前,请尝试删除“单击”事件处理程序。也就是说,使用jQuery的“off()方法”添加off()
notworking我无法复制您的问题。你能制作一个复制它的片段吗。触发器方法在何处/何时调用?通常不应发生。。你能分享一下代码吗?这样我们就可以看看你哪里出错了。通常,它只记录一次元素
。检查fiddle您是否尝试在一个干净的项目/解决方案/文件/代码段/jsfiddle中重现该问题?您会发现它可以按预期工作(如上面两个示例jsfiddle所示)。因此,无论是什么原因导致了问题,都超出了您在这里描述的范围。您可能有一个第二次单击事件处理程序设置,或者(很可能)两次调用.on(“单击”)
(尽管.off()
应该已经解决了这个问题)。这里提供的任何解决方案都是基于其他人的经验,而不是你的问题是什么,因此基本上都是猜测。试着用一个例子来说明这个问题。我不敢相信我犯了那个错误。好的,我有一个隐藏的按钮元素和同一个类。谢谢顺便说一句,我不能显示所有的代码。HTML和JS文件都很大,这就是为什么我想它没有引起我的注意。很高兴能帮上忙,每个人都会犯错误:)
$('.proceed').trigger('click');