我有多个传单的以下代码,点击后会显示4秒后消失的帮助文字覆盖。我可以让它显示帮助文本,但超时不起作用。
$(".flyercontainer").click(function(){
$(this).children('.flyerHelp').css('opacity',0.8);
setTimeout(function(){
$(this).children('.flyerHelp').css('opacity',0);
},4000);
})
感谢您的帮助。
答案 0 :(得分:6)
this
回调中的setTimeOut()
不符合您的想法(它指向全局对象,window
)。
$(".flyercontainer").click(function(){
var children = $(this).children('.flyerHelp');
children.css('opacity',0.8);
setTimeout(function(){
children.css('opacity',0);
},4000);
});
答案 1 :(得分:0)
如上所述,this
在window
方法的回调函数范围内使用时引用window.setTimeout()
对象。您可以通过在this
click
的{{1}}处理程序范围内设置等于.flyercontainer
的变量来解决此问题,但在调用setTimeout()
之外。
或者,您可以在两个零持续时间动画之间链接jQuery的delay()
方法,以获得对象的不透明度,以实现相同的效果。 (演示:http://jsfiddle.net/V2ZYy/)