jQuery:使用延迟()和前置()

Posted

技术标签:

【中文标题】jQuery:使用延迟()和前置()【英文标题】:jQuery: using delay() and prepend() 【发布时间】:2010-07-14 06:40:17 【问题描述】:

在下面的代码中,最后一行在我的方式中不起作用:

$('button.goal').click(function () 
 $('div.scorer_away').animate(
  width: 'hide',
  opacy: 'hide'
  , 'slow')
 .delay(2500)
 .animate(
  width: 'show',
  opacy: 'show'
  , 'slow');
 $('span.scorer_away').delay(3000).prepend('<img src="chofbauer.png"  />');

我怎样才能让它工作,prepend() 函数在 3 秒后添加新图像(因为 2.5 秒后容器,其中 img 前置被隐藏)?

【问题讨论】:

【参考方案1】:

.delay() 仅适用于 jQuery fx methods.prepend() 不是其中之一。

你可以像这样解决它

$('span.scorer_away').delay(3000).show(1, function()
    $(this).prepend('<img src="chofbauer.png"  />');
);

实际上,您必须创建自己的 .queue() 以获得“干净”的解决方案。

完成该任务的另一种方法是使用 javascripts 本机 setTimeout()

setTimeout(function()
   $('span.scorer_away').prepend('<img src="chofbauer.png"  />');
, 3000);

【讨论】:

【参考方案2】:

你可以试试setTimeout:

function myfunc()  $('span.scorer_away').prepend('<img...>') ;   
setTimeout( myfunc, 3000 );

【讨论】:

以上是关于jQuery:使用延迟()和前置()的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 延迟?

Jquery 前置点击处理程序

使用jQuery删除前置脚本标记?

jQuery。前置淡入(错误)

在 Jquery 中切换时如何更改前置文本?

[ jquery 文档处理 prependTo(content) ] 此方法用于把所有匹配的元素前置到另一个指定的元素元素集合中