2013-04-20 49 views
0

我通过ajax调用通过perl加载列表到一个div。 一旦名单被载入我触发的第一行上点击:ajax调用和html jQuery的时机()

success: function(data) { 
    $('#newsList').html(data); 
    $("#newsList .EDITrow").first().trigger('click'); 
}, 

但问题是时机...在上面的代码中没有任何反应。

html()是一个同步操作,所以我猜测它没有及时加载触发器来完成它的工作。

为了测试这个,我在setTimeout 1000中包装了触发线,它工作正常。即第一行被点击并且与点击相关的所有内容都按照它应该的那样工作。

由于html()没有回调,所以这样做的正确方法是......显然超时并不是正确的方法。

+0

呀,'的.html()'是同步的,所以我还以为这会工作。看看它是否仍然以1的超时工作会很有趣。也许这就是它所需要的。 – 2013-04-20 07:20:36

+0

setTimeout(function(){$(“#newsList .EDITrow”)。first()。trigger('click');});' – 2013-04-20 07:22:37

+0

我认为这是您的浏览器的错误 - 在DOM正确更新之前'html'调用返回。也可以是jQuery - 但如果它在另一个浏览器上工作,它将是一个浏览器错误。你在使用哪种浏览器,并尝试了另一种浏览器? – fredrik 2013-04-20 07:22:38

回答

0

尝试使用$("#newsList .EDITrow").delay(1000).first().trigger('click');

+0

正如在上面的评论中提到的那样,只有1毫秒的超时 – Upland 2013-04-20 07:58:20