2010-02-02 39 views
1

这是我使用的代码,它是使上mousenter列表显示在列表的标题。 的事情是,它似乎并。消失很突然我能做些什么,使这个平滑我怎样才能淡入淡出出现(使用.bind命令的列表?

非常感谢您的时间

<script type="text/javascript"> 

var timeout = 0; 
var closetimer = 0; 
var ddmenuitem = 0; 

function jsddm_open() 
{ jsddm_canceltimer(); 
    jsddm_close(); 
    ddmenuitem = $(this).find('ul').css('visibility', 'visible');} 

function jsddm_close() 
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');} 

function jsddm_timer() 
{ closetimer = window.setTimeout(jsddm_close, timeout);} 

function jsddm_canceltimer() 
{ if(closetimer) 
    { window.clearTimeout(closetimer); 
     closetimer = null;}} 

$(document).ready(function() 
{ $('#jsddm > li').bind('mouseenter', jsddm_open) 
    $('#jsddm > li').bind('mouseleave', jsddm_timer)}); 

document.onclick = jsddm_close; </script> 
+0

我看你是使用jQuery。请修正格式。 – 2010-02-02 13:02:12

+0

这看起来像Javascript和JQuery - 如果是这样,你应该这样标记问题,以帮助人们了解他们在看什么。如果您正确设置了代码格式,它也会有所帮助,请参阅文本编辑区域上方的“101010”按钮 – 2010-02-02 13:02:56

回答

1

是设置可见你的两行:?!

ddmenuitem = $(this).find('ul').css('visibility', 'visible'); 
    ddmenuitem.css('visibility', 'hidden'); 

ŧ RY这个代替:

ddmenuitem = $(this).find('ul').show('slow'); 
    ddmenuitem.hide('slow'); 

旁白:

你最后几行可能是这样。只是有点整洁:

$(document).ready(function(){ 
    $('#jsddm > li').mouseover(jsddm_open) 
    $('#jsddm > li').mouseout(jsddm_timer) 
    $(document).click(jsddm_close); 
}); 

甚至:

$(document).ready(function(){ 
    $('#jsddm > li').hover(jsddm_open, jsddm_timer) 
    $(document).click(jsddm_close); 
});