0

我有一个 jQuery 菜单,在“单击”时打开并在“dblclick”时关闭。 http://jsfiddle.net/snoffoz/4rZa9/1/

我的问题是它(子菜单)在我单击链接后关闭。有没有办法让它只在单击主菜单点(菜单 1、菜单 2)时打开/关闭?

编辑:我的问题不会出现在 jsfiddle 中,因为链接不是真实的。

"ul" "li" 由 Wordpress 生成。WP 链接http://wptemp.site90.net/

4

1 回答 1

1

工作演示 http://jsfiddle.net/JuvwB/

如果我建议您尝试重构您的无序列表,那么您遇到了绑定问题,因为您的顶部ul列表li嵌套了全新的ul即水平菜单。

此代码应该对您有所帮助,我所做的只是在用户单击嵌套列表时返回 false。

你也可以试试这个:http ://api.jquery.com/unbind/

希望这会有所帮助,干杯!

代码

jQuery.noConflict();
(function($) {
$(function() {

    // Dropdown Menu

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

    function jsddm_open() {
        jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').css('visibility', 'visible').parent().addClass('jsddm_hover').end();
    }
    function jsddm_close() {
        if(ddmenuitem) ddmenuitem.css('visibility', 'hidden').parent().removeClass('jsddm_hover');
    }
    function jsddm_timer() {
        closetimer = window.setTimeout(jsddm_close, timeout);
    }
    function jsddm_canceltimer() {
        if(closetimer) {
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    }

    $('ul.jsddm li').bind('click', jsddm_open);

    $('ul.jsddm li').bind('dblclick',  jsddm_timer);
    $('ul.sub-menu li a').bind('dblclick', function(){
        return false;        
    });
    //document.onclick = jsddm_close;

    $('.thumb img').after('<span></span>');
    $('.thumb span').css('opacity','0');
    $('.post_home a:first-child').hover(function(){



    }); 



});
})(jQuery);

​</p>

于 2012-06-16T09:24:33.163 回答