Javascript jQuery html()与其他函数链接的计时问题
我注意到了很多,但它终于开始困扰我了(请原谅这个双关语)。当我将Javascript jQuery html()与其他函数链接的计时问题,javascript,jquery,html,Javascript,Jquery,Html,我注意到了很多,但它终于开始困扰我了(请原谅这个双关语)。当我将html()与其他函数链接在一起时,似乎不管怎样,html()都会首先运行。例如: $("#news .inner").hide("slide", { direction: strOpposite }, 500).delay(1000).html(strData).show("slide", { direction: strDirection }, 500); 即使如图所示向其添加delay(),似乎也无法解决问题。这一行是我为网
html()
与其他函数链接在一起时,似乎不管怎样,html()
都会首先运行。例如:
$("#news .inner").hide("slide", { direction: strOpposite }, 500).delay(1000).html(strData).show("slide", { direction: strDirection }, 500);
即使如图所示向其添加delay()
,似乎也无法解决问题。这一行是我为网站的新闻档案部分实现的翻页效果的一部分。有什么想法吗?谢谢。jQuery所做的“效果”会被添加到效果队列中,而非类似效果的调用(.html()
)不会,因此会立即完成
您可以尝试将其添加到回调函数,如下所示:
$("#news .inner").hide("slide", { direction: strOpposite }, 500).delay(1000, function() {
$(this).html(strData)
}).show("slide", { direction: strDirection }, 500);
或者您可能正在尝试这样做:
$("#news .inner").hide(500, function() {
$(this).html(strData);
}).delay(1000).show("slide", { direction: strDirection }, 500);
顺便说一句,我认为您的hide()
和show()
调用在语法上不正确。您应该在jQuery API上签出并查看延迟用于操作队列(animate()、slideUp()等),并且不会影响非效果的菊花链排序。您可以使用回调来实现$.html()的真正延迟
当您将许多方法链接在一起时,它们将按链接顺序执行,但动画方法会添加到动画队列中,实际动画会在稍后(按顺序)执行 据我所知,动画队列中唯一的延迟是。
.html()
方法不是动画
如果您打算在.hide()
方法完成后调用.html()
,则应将其放入由提供的完整回调中
因此,假设您想隐藏,然后更改html,然后显示,您可以这样做:
$("#news .inner").hide("slide", { direction: strOpposite }, 500,
function() { $(this).html(strData); })
.show("slide", { direction: strDirection }, 500);
演示:隐藏和显示元素等效果会添加到效果队列中。添加到队列中会立即发生,在队列上设置延迟也是如此。Html函数也会立即执行 延迟函数实际上并不延迟链中下一个函数的调用。默认情况下,如果没有第二个参数,它会延迟FX队列 如果您想解决这个问题,您可以使用jQuery.queue函数()创建自己的队列,或者更简单地使用标准的setTimeout函数()
或者,您也可以使用hide函数的完整回调来继续链,这是使用回调的一个有效示例。大家都提到了这一点,;希望我能选择多个答案!谢谢,不用客气。我是个白痴。让我做一次检查,以确保完美。很抱歉。再次感谢。对于
hide()
和show()
语法,我也有同样的想法,但后来我记得它们有额外的参数。
$("#news .inner").hide("slide", { direction: strOpposite }, 500,
function() { $(this).html(strData); })
.show("slide", { direction: strDirection }, 500);