3

私はJquery-uiメニューウィジェットをいじっていて、本当に明白であるように思われるいくつかの機能を手に入れようとしています.

メニューを簡単に水平にし、サブメニューを垂直に下げることができました...しかし、私の人生では、メニューからマウスアウトしたときにサブメニューを折りたたむことができません。他の何かをクリックするまで、そこにとどまります。本当に忌々しい。デザイナーとして、それは私のすべての感性に反するものであり、そこにぶら下がっている理由がわかりません.

何か特別なものを追加する必要がありますか? 余談ですが、メニュー ウィジェットを編集しながら、Jquery-ui js を数時間いじっています。私はここでいじりました:

// DEFAULT FUNCTION:
    // Clicks outside of a menu collapse any open menus
    this._on( this.document, {
        click: function( event ) {
            if ( !$( event.target ).closest( ".ui-menu" ).length ) {
                this.collapseAll( event );
            }

            // Reset the mouseHandled flag
            this.mouseHandled = false;
        },
        // I ADDED THIS:
        mouseout: function( event ) {
            this.collapseAll( event );
        }
    });

それは私が望んでいた動作を生み出しました...一種の...今、サブメニューが添付されたメニュー項目のマウス入力検出がむらがあります。メニューが時々しか機能しないライブサイトを立ち上げることは、あまりよくありません。何か案は?私はこれを難しい方法または間違った方法で行っていますか、それとも単に知らないことがありますか? 私は jQuery が得意というわけではなく、実際に始めたばかりです。

基本的に、メニュー ウィジェットの jQuery UI デモ ページの例の拡張バージョンであるセットアップを使用しているため、問題の原因は自分の html ではないと思います。

4

4 に答える 4

1

わかりました、これには少し検索が必要でした。

前の回答の jplfl の例をガイドとして使用し、jquery-ui.js ファイルを調べて、メニューに関係する機能を探しました。メニューを実際に折りたたむ関数を呼び出す代わりに、mouseleave が "collapseAll" にバインドされている # 9715 行を見つけました。私はこれを次のように変更しました:

    mouseleave: function( event ){
        this.collapseAll( event, true );
    },

そして今、それは機能します。

それで、ええ。jplflの回答は確かに役に立ちましたが、もう少し詳しく説明すると、これは適切かもしれないと思いました.

于 2013-07-20T18:11:07.917 に答える
1

私はちょうど同じ問題を抱えていて、ここで解決策を見つけました。うまくいくことを願っています。

于 2013-07-09T10:52:05.967 に答える