我有以下jQuery代码 -
$('div#mid_number_of_mail').mouseover(function () {
setTimeout(function () {
$('div.element_popup' ,this).stop().animate({
opacity : '1'
}, 250, 'linear', function() { });
}, 5000);
});
但我不知道为什么它不能正常工作。有人可以帮我这个代码吗?
提前致谢!
答案 0 :(得分:5)
因为this
是window
而不是具有给定ID的div。
this
基于如何调用函数是上下文敏感的。
由于函数是通过setTimout
调用的,因此它没有对象上下文,因此使用默认对象:window
。
您希望this
与鼠标悬停功能一样,因此您需要将其副本保存在其他变量中。
$('div#mid_number_of_mail').mouseover(function () {
var that = this; // Take the this from this context and keep it for other functions
setTimeout(function () {
$('div.element_popup', that).stop().animate({
答案 1 :(得分:2)
尝试使用:
setTimeout( function(ele) {}, 2000, $(this) );
在你的“ele”中,你会引用“$(this)”。