0

「クリック」で開き、「dblclick」で閉じるjQueryメニューがあります。 http://jsfiddle.net/snoffoz/4rZa9/1/

私の問題は、リンクをクリックした後に (サブメニュー) が閉じてしまうことです。メイン メニュー ポイント (メニュー 1、メニュー 2) をクリックしたときにのみ開閉する方法はありますか?

編集:リンクが本物ではないため、私の問題はjsfiddleに表示されません。

「ul」「li」はWor​​dpressで生成しています。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 に答える