0

一部のページでは、ページが開くとすぐに、デフォルトで Superfish (メニュー プラグイン) が最初のレベルのオプションの 1 つを展開するようにします。このオプションは id="me" であると考え、"onInit" 関数を実装しようとしましたが、機能しません。誰か見てくれませんか?ありがとう。

jQuery(function(){
jQuery('ul.sf-menu').superfish({
    onInit: function(){$('#me',this).show();},
    });
});
4

2 に答える 2

0

わかりました、CSS の部分は簡単でした。「可視性」の値を使用せず、代わりにボックスの位置を「top:-999em」(非表示) から「top:2.5em」(表示) に変更します。Superfish の「表示可能な」ボックスからの単なるコピーである、自分用の別のクラスを作成しました。

ul.open {
left:   0;
top:    2.5em;
z-index:    99;
}

JS が無効になっている場合でも機能するようになりましたが、JS が有効になっている場合は、とにかくすべてのオプションが折りたたまれます。今回試した多くのバリエーションの1つを次に示します。

    onInit: function(){$('ul.open').addClass('ul.open');}

このクラスが存在しないかのように、まったく効果がありません。

私が試してみると:

    onInit: function(){$('ul.open').html('hello');}

「hello」という単語は、サブメニューではなくマウスオーバーで表示されますが、「onInit」ではなくマウスオーバーで表示されます。

于 2009-12-10T11:40:57.527 に答える
0

javascript エラーが表示されますか?

投稿したスニペットで考えられる問題:

  • onInit何らかの理由で呼び出されません。alertまたはで確認してくださいconsole.log
  • thisinonInitは DOMElement ではありません。jquery オブジェクトである可能性があります。確認するconsole.log

さらに、そこに構文エラーがあります。オブジェクト リテラルの最後のプロパティの後にコンマを続けてはなりません。

于 2009-12-09T20:54:04.963 に答える