我有一段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");
});
答案 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();
功能......