我不知道这对我来说是否只是一个简单的疏忽,但我做错了什么?我想要regular.js
的结果,但为什么这不适用于jquery?
html:
<a href="" class="foobar" id="foobar">click me</a>
regular.js:
document.getElementById('foobar').click();
// this results in the page continuously clicking and reloading the page
jquery.js:
$(document).ready(function() {
setTimeout(function() {
$("#foobar").trigger('click');
},5);
});
// this waits for page to load before executing, but does nothing.
答案 0 :(得分:0)
触发器:执行附加到给定事件类型的匹配元素的所有处理程序和行为。
您应该将.trigger('click')
替换为.click()
阅读完评论后再搜索一下,我发现了以下内容:
jQuery可以使用以下方法激活绑定的方法:
.bind
,.on
,.click
等)element.onclick = function() {}
。 但如果使用element.addEventListener()
添加方法,jQuery的.click()
和.trigger()
将无声地失败。
使用element.click()
激活所有绑定方法。鼠标实际点击也是如此,但这很简单。
此外,MDN表示OP已指出以下内容:
click()方法不会导致元素启动导航,就像收到真正的鼠标点击一样。
我在Ubuntu 14上试过Chrome 52和Firefox 48,它似乎对我有用。不过,还不确定MDN所说的是错误的。
答案 1 :(得分:0)
不完全确定为什么你的工作不起作用 - jsfiddle
中的工作示例$(document).ready(function() {
$(document).on('click',"#foobar",function(){alert("hello world")})
setTimeout(function() {
$("#foobar").trigger('click');
},5);
});