Jquery如何在链式操作中使用hide(), delay()和show()?

jQuery开发中最快速的编程方式就是链式操作,在开发一个简单的定制加载页面过程中,我需要能够让一个页面元素出现,延时1000毫秒,最后消失,本来这个过程非常简单,我觉得直接使用如下代码即可搞定:

$("#gbin1-text").show().delay(1000).hide();

但是,让我费解的是,这个代码即不出错,也不显示我希望出现的元素,然后消失。

本身这个代码没有任何问题,如果大家尝试使用下面的代码,可以正常工作。

$('#gbin1-text').slideUp(300).delay(800).fadeIn(400);

本身这俩行代码没有太多区别啊,但是上面代码就是无法正常工作,无奈之下,Google了一下,发现原因了。

如果你将以上代码修改为

$("#gbin1-text").show(0).delay(1000).hide(0);

你会惊奇的发现,可以正常工作了。这里有个jQuery的bug:http://bugs.jquery.com/ticket/7721

原因在于1.4中添加的delay()方法将会允许其它在特效队列中的方法延迟执行,只有一个队列中的子事件才可以被延迟,例如,这个方法不会延迟没有参数的方法,因为没有参数的方法不使用特效的队列。

金牌狙击手

52html5是一个web前端|html5资源平台,为广大html5开发者及爱好者提供html5相关的教程、资讯、html5游戏、html5教程等,并涉及css3、javascript前端知识。