目前我按以下方式触发点击事件。
$( "#elem1" ).trigger( "click" );
我需要触发2次点击事件,所以我只需按照以下方式复制上述功能。
$( "#elem1" ).trigger( "click" );
$( "#elem2" ).trigger( "click" );
不幸的是,第一个点击事件完成之前会调用第二个函数。所以我尝试使用回调方法执行此操作:
$("#elem1").trigger("click", function() {
$( "#editLayoutButton" ).trigger( "click" );
alert('clicked');
});
第二次点击事件从未被触发,因此我添加了一个警报功能以进行调试。永远不会调用警报功能。
答案 0 :(得分:1)
触发方法没有回调。
您可以使用setTimeout
确保在第一次单击触发后发生其他触发。
$( "#elem1" ).trigger( "click" );
setTimeout(function(){
$('#elem2').trigger('click');
},1);
http://api.jquery.com/trigger/
另见:
How to run a callback function on a jQuery trigger("click")?
和
How do I detect a jquery trigger events completion?
答案 1 :(得分:0)
它不可能在触发器中放置一个函数,因为它不知道点击的作用,因此触发函数没有回调函数。有两种选择。
setTimeout
功能答案 2 :(得分:0)
我相信你正在寻找这个:
$("#elem1").click( function () {
$("#elem2").trigger("click");
alert('clicked');
});
你做了两件不同的事情。首先是你正在观看"点击。"点击后,您就会触发"再点击一次。