2011-04-25 69 views
1
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移除时,图像没有消失。show hide image inside div

+0

您可以提供HTML代码也 – Dharmesh 2011-04-25 05:29:06

+1

这可能是也可能不是一个问题 - 你在淡出的'年底失踪分号(;)' - 缺少分号,再加上在新行上使用'{'会导致很难用JavaScript查找错误。你应该添加';'然后再试一次 - 这次可能会工作。 – 2011-04-25 05:30:04

+0

添加分号无帮助 – Pankaj 2011-04-25 05:38:08

回答

0

一个setTimeout的功能总是在全球范围内执行,因此窗口当功能被执行。
使用封闭在所期望的目标指向:

$(".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); 
     } 
    );