var hide = false;
$(".list_rowtext").hover(function () {
if (hide) clearTimeout(hide);
$(this).children("img").fadeIn();
},
function () {
hide = setTimeout(function ()
{ $(this).children("img").fadeOut("slow") }, 250);
});
.list_rowtext
是div标签。实际上我想要的是当我将鼠标悬停在div上时,图像显示并且当鼠标焦点被移除时图像消失,此div标记位于listview itemtemplate
内,意味着它重复。
当我将鼠标悬停在div上时显示图像但是当从该div移除鼠标焦点时图像没有消失。
答案 0 :(得分:0)
setTimeout-function始终在全局范围内执行,因此执行该函数时此为窗口。
使用闭包指向所需目标:
$(".list_rowtext").hover(
function () {
if (hide) clearTimeout(hide);
$(this).children("img").fadeIn();
},
function () {
var obj=this; //closure
hide = setTimeout(function ()
{ $(obj).children("img").fadeOut("slow"); }, 250);
}
);