我想在我的页面加载后执行一次触发器单击一次。 许多帖子发誓,settimeout只会触发一次,但就我而言,它是无限的! 这是我的众多试验之一。
$( document ).ready(function() {
setTimeout(function() {
$("#btn1").trigger('click');
},1000);
});
我已经尝试将其移动到document.ready之外的函数中,然后添加cleartimeout,但它会停止触发:
$( document ).ready(function() {
test();
});
function test() {
var t = setTimeout(function() {
$("#btn1").first().trigger('click');
},1000);
clearTimeout(t);
}
我做错了什么!?
答案 0 :(得分:0)
使用e.stopPropagation()
,这可能是因为事件冒泡。
<强> HTML 强>
<button id="btn1">my button</button>
<强> JS 强>
$( document ).ready(function() {
setTimeout(function() {
$("#btn1").trigger('click');
},1000);
$("#btn1").click(function(e){
console.log('clicked');
e.stopPropagation();
console.log(e);
})
});
答案 1 :(得分:0)
在setTimeout()中使用clearTimeout()。它会在触发点击后清除超时
$(document).ready(function() {
test();
});
function test() {
var t = setTimeout(function() {
$("#btn1").trigger('click');
clearTimeout(t);
}, 1000);
}
$("#btn1").on('click',function(){
console.log("Clicked");
});