我在这里有两行javascript,当切换功能执行时我想在查找功能发生之前延迟。
$activeToggle.toggle("fast"); // i want this to run and then after 1250 millisec
$activeToggle.find(".anime").each(function (i,e){ // this code runs
alert(e.id);
});
我想延迟执行第二行代码,因为出于某种原因,警报发生在切换操作发生之前,所以它们必须是延迟第二行的方法。感谢
答案 0 :(得分:9)
使用回调函数。这样可以确保在运行循环函数之前切换已完成执行。
$activeToggle.toggle("fast", function(){
$(this).find(".anime").each(function (i,e){ // this code runs
alert(e.id);
});
})
这样你就不需要拖延了。您的代码将在toggle()
函数后立即运行。
答案 1 :(得分:1)
您可以使用delay()方法:
$activeToggle.delay(1250).toggle("fast");
答案 2 :(得分:1)
setTimeout( function () { $activeToggle.toggle("fast"); }, 1250);
答案 3 :(得分:0)
利用jQuerys延迟功能:)
$activeToggle.delay(1250).toggle("fast", function(){
$(this).find(".anime").each(function (i,e){ // this code runs
alert(e.id);
});
})
答案 4 :(得分:0)
除了使用回调之外,您还可以强制您的代码在执行前使用.stop()
$activeToggle.toggle("fast"); // i want this to run and then after 1250 millisec
$activeToggle.find(".anime").stop(true,true).each(function (i,e){ // this code runs
alert(e.id);
});
答案 5 :(得分:0)
如果您的目标是在动画完成后触发一个函数,那么您可以传递toggle()仅在动画完成后运行的回调函数。
$activeToggle.toggle("fast", function() {
$activeToggle.find(".anime").each(
function(i, e) {
alert(e.id);
});
});