在div中显示隐藏图像

时间:2011-04-25 05:24:04

标签: jquery

    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移除鼠标焦点时图像没有消失。

1 个答案:

答案 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);
      }
    );