Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Javascript 另一个触发器完成后的触发器单击事件_Javascript_Jquery_Triggers_Callback - Fatal编程技术网

Javascript 另一个触发器完成后的触发器单击事件

Javascript 另一个触发器完成后的触发器单击事件,javascript,jquery,triggers,callback,Javascript,Jquery,Triggers,Callback,目前,我以以下方式触发单击事件 $( "#elem1" ).trigger( "click" ); 我需要触发2个点击事件,所以我简单地复制了上面的函数,如下所示 $( "#elem1" ).trigger( "click" ); $( "#elem2" ).trigger( "click" ); 不幸的是,在第一次单击事件完成之前调用了第二个函数。因此,我尝试使用回调方法执行此操作: $("#elem1").trigger("click", function() { $( "#ed

目前,我以以下方式触发单击事件

$( "#elem1" ).trigger( "click" );
我需要触发2个点击事件,所以我简单地复制了上面的函数,如下所示

$( "#elem1" ).trigger( "click" );
$( "#elem2" ).trigger( "click" );
不幸的是,在第一次单击事件完成之前调用了第二个函数。因此,我尝试使用回调方法执行此操作:

$("#elem1").trigger("click", function() {
    $( "#editLayoutButton" ).trigger( "click" );
    alert('clicked');
});
第二次单击事件从未触发,因此我添加了一个警报函数用于调试。从不调用警报函数


触发器方法没有回调

您可以使用
setTimeout
来确保在第一次单击触发器之后发生另一个触发器

$( "#elem1" ).trigger( "click" );
setTimeout(function(){ 
   $('#elem2').trigger('click'); 
},1);


另请参见:


不可能将函数放入触发器中,因为它不知道单击的作用,因此触发器函数没有回调函数。有两种选择

  • 如果您知道完成第一个功能需要多长时间。使用
    setTimeout
    功能
  • 使用第一次单击时触发的函数,检查是否完成,并在那里触发下一次单击函数

  • 我相信你在寻找这个:

    $("#elem1").click( function () {
        $("#elem2").trigger("click");
        alert('clicked');
    });
    

    你在做两件不同的事情。第一个是你在观察“点击”。一旦你点击了,你就会“触发”另一次点击。

    在第一次点击事件中你会做什么?通常它应该在另一行之前完成。你的演示没用。您需要复制演示中的问题,即“在第一次单击事件完成之前调用第二个函数”。就这个问题而言,您当前的演示没有意义。可能是重复的