0

私は JQuery をまったく初めて使用し、テンプレートに基づいてワードプレス サイトを構築してきました。アコーディオン メニューがジャンプし、ロールオフした後もしばらくジャンプし続けるという厄介な不具合があります。私がしたいのは、ホバーとして機能するのを止め、代わりにクリック時にのみ開く/閉じるように変更することです。

これは私が持っているコードです

/*

メインメニュー

*/

関数 mainMenu () {

jQuery("nav ul li").hover(function () 
{

    jQuery(this).find("ul").fadeIn(0).slideUp(0).slideDown(800);

}, function () 
{

    jQuery(this).find("ul").slideUp(800);       

});

jQuery("nav ul li").each(function () 
{

    if (jQuery(this).find("ul").size() > 0) jQuery(this).find("a").filter(":first").append(" +");

});

}

注: この不具合は、ナビゲーションに 3 番目のレベルを追加した場合にのみ発生します。これは、このテンプレートの一般的な問題です。問題のビデオも http://youtu.be/lgbxWbmzbawにあります。

4

1 に答える 1

0

この問題を防ぐために、スライドする要素に固定幅を与えます。幅が固定されていないと、jQuery はターゲットの高さを正確に計算できません。

また、に置き換える.size()は減価償却されており、悪い習慣です。.length.size()

幅を固定せずにこの問題を回避する唯一の方法は、高さを設定した高さに直接アニメーション化することです。

于 2012-07-10T15:51:30.920 に答える