JavaScript / jQuery代码的执行顺序

时间:2015-07-16 19:38:58

标签: javascript jquery html

我有一段jQuery代码如下。当点击标识为some_button的按钮时,它会从网址获取一些数据(即HTML代码),然后将其放入some_div。它获得的HTML包含一些类run的按钮,我想要自动触发这些按钮。使用以下代码时,run按钮在第一次单击some_button时永远不会自动触发,但在第二次单击时会起作用。我注意到的另一个奇怪的事情是,当我使用Chrome断点来逐步执行代码时,我发现它在执行$(".run").trigger("click");$("#some_div").empty();之前执行$("#some_div").append(data.info);。为什么按此顺序执行?

$("#some_button").click(function()
{
    //some code here
    $.get("/some_url", function(data){
      $("#some_div").empty();
      $("#some_div").append(data.info); 
    });
    $(".run").trigger("click");
});

1 个答案:

答案 0 :(得分:1)

Docs on get可能对此有所帮助。

$("#some_button").click(function()
{
    //some code here
    $.get("/some_url", function(data){
      $("#some_div").empty();
      $("#some_div").append(data.info); 
    }).done(function() {
       $(".run").trigger("click");
    });    
});

此外,$.get()实现了promise接口,因此您也可以利用.then();功能......