Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 触发锚定标记上的单击事件不会';行不通_Jquery_Jquery Trigger - Fatal编程技术网

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)
触发DOM
click
事件,这应该只在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()


您需要调用本机DOM
click()
方法来触发默认的点击锚行为,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();
});