Jquery 触发锚定标记上的单击事件不会';行不通
我刚刚遇到了 触发锚定标记上的Jquery 触发锚定标记上的单击事件不会';行不通,jquery,jquery-trigger,Jquery,Jquery Trigger,我刚刚遇到了 触发锚定标记上的单击事件在此处不起作用 <a class="button2" href="#popup1">hello</a> <div id="popup1" class="overlay"> <div class="popup"> <div class="contentSpec"> <h2>Would you like to visit</h2> <h
单击
事件在此处不起作用
<a class="button2" href="#popup1">hello</a>
<div id="popup1" class="overlay">
<div class="popup">
<div class="contentSpec">
<h2>Would you like to visit</h2>
<h1>someURL</h1>
</div>
<a class="close" href="#"></a>
<div class="content">
<div class="box">
<a class="button" href="#popup1">YES</a>
<a class="button1" href="#popup1">NO</a>
</div>
</div>
</div>
</div>
我的问题是,在这种情况下,为什么触发器事件不起作用?因为您没有任何。单击()将不会触发它
您需要使用.click()
而不是jQuery方法的.trigger(e)
触发DOMclick
事件,这应该只在DOM节点上起作用。您可以通过引入索引[0]
或使用jQuery的方法.get(0)
来实现
相反,请尝试以下方法:
$(document).ready(function() {
$(".button2")[0].click();
// or $(".button2").get(0).click();
});
如果是这种情况,则只能使用javascript执行此操作:
window.addEventListener('DOMContentLoaded',函数(e){
document.querySelector('.button2')。单击();
},假);
使用
get(0)
将返回第一个DOM对象而不是jquery对象,并且将触发click()
您需要调用本机DOMclick()
方法来触发默认的点击锚行为,jQuery特别是:
尝试$(“.button2”)。单击()
@AdamAzad已尝试,但仍不起作用。什么不起作用。如果我点击它,它会显示你想显示一些URL吗。。我可以在控制台日志中看到单击,但弹出窗口仍然没有打开。@AmitShagh什么弹出窗口?你没有弹出窗口的任何代码。你只要把它写下来就行了,好吧!我现在明白了,然后你需要使用A.wolff的答案。很好,但是为什么我需要在这里使用索引(0)。“我的意思是,即使我将类更改为ID,它也无法工作?”AmitSingh如是说,您需要启动本机DOM API单击方法[0]
返回DOM节点,这相当于get(0)
。否则,如果您在jQuery对象上触发click()
事件,那么本机方法将被特别丢弃,我在jq source中发布了ref所有这一切都表明,如果您希望支持较旧的浏览器并避免一些问题,因为浏览器没有启动本机click方法beghaviour或不支持:target
CSS伪类,更好的方法是切换类,例如:显式排除!-你刚刚救了我一天!
$(document).ready(function() {
$(".button2")[0].click();
// or $(".button2").get(0).click();
});
$(".button2").get(0).click();
$(document).ready(function() {
$(".button2")[0].click();
});