3

同じ問題を抱えている他の多くのメンバーを見つけましたが、問題を解決するのに十分なスクリプトに近いメンバーがいないか、自分で解決するための jquery の技術的な知識がありません。

ドロップダウンの反対側にシンプルなスライドアップメニューがあり、子の上にマウスを置くとちらつくことに気付きました

問題を示すために、ここに配置しましたhttp://jsfiddle.net/noeg/F9QYb/2/

(function ($) {

$("#menu > ul > li:has(ul)").mouseenter(function () {
    $(this).find("ul").stop(true, true).slideDown();
}).mouseleave(function () {
    $(this).find("ul").stop(true, true).slideUp();
});

})(this.jQuery);

ありがとう。

4

2 に答える 2

2

短い遅延を追加するだけです:

$("#menu > ul > li:has(ul)").mouseenter(function () {
    $(this).find("ul").stop(true, true).delay(300).slideDown();
}).mouseleave(function () {
    $(this).find("ul").stop(true, true).delay(300).slideUp();
});

http://jsfiddle.net/samliew/F9QYb/3/

于 2013-09-04T02:43:34.257 に答える
0

メニューとサブメニューの間の白いギャップはmouseleave、もう内側にないため、トリガーされてい<li>ます。

これを解決する 1 つの方法は、サブメニューの下部に合わせてメニュー項目にパディングを与えることです。これにより、カーソルが から離れず、 がliトリガーされなくなりますmouseleave

これが解決策です:http://jsfiddle.net/F9QYb/6/

于 2013-09-04T03:03:30.130 に答える