2012-05-01 104 views

回答

0

工作演示
http://jsfiddle.net/RguMu/show
http://jsfiddle.net/RguMu/
http://jsfiddle.net/UK9Qt/ - 只有当类别被点击的显示和隐藏

所以在第二次点击,您的菜单现在将关闭:

使用is(':visible')

另一个建议,你不需要这么多的公关operties。只需做showhide,休息你就会更好地了解你的需求。

jQuery代码

if(submenu.is(':visible')){ 
    submenu.hide(); 
    return false; 
} 

的完整代码

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

function jsddm_open(event) { 
    jsddm_canceltimer(); 
    jsddm_close(); 
    var submenu = $(this).find('ul'); 

    if(submenu.is(':visible')){ 
     submenu.hide(); 
     return false; 
    } 

    if (submenu) { 
     ddmenuitem = submenu.css('visibility', 'visible'); 
     ddmenuitem = submenu.css('position', 'relative'); 
     submenu.show(); 
     return false; 
    } 

    return true; 
} 

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

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('click', jsddm_open); 
    $('#jsddm > li').bind('mouseout', jsddm_timer); 
    $('#jsddm > li').bind('mouseover', jsddm_canceltimer); 
    $('#jsddm li').find('ul').hide(); 

}); 

document.onmousedown = jsddm_close;