2010-02-02 48 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); 
});