0

サブナビゲーション項目をクリックすることでトリガーされるこの関数 sideNav があります

$(".side-nav ul li a").click(function(event) {
    $(document).ready(sideNav());
});

if(window.location.hash) {
    $(document).ready(sideNav());
}

特定の要素がクリックされたときに sideNav のバインドを解除しようとしています

$(".side-nav .page-header h1 span").click(function(event) {

}).unbind('ready',sideNav);

.live() と .die() を使用してみましたが、これらはハッシュタグの if ステートメントでは機能しません。

どんな助けでも大歓迎です。ありがとうございました。

4

2 に答える 2

2

jQuery bind()unbind( ) を調べてください。

click() を変更するには、次のようにします。

$(".side-nav ul li a").bind('click', function(event) {
    $(document).ready(sideNav());
});

$(".side-nav ul li a").unbind('click');
于 2012-12-03T22:06:05.603 に答える
0

on()off()は、イベント ハンドラーをアタッチおよびデタッチするための推奨される方法です。

また、コードを実行するときに DOM がロードされていることを確認するために、コードをドキュメント準備完了でラップします。すべての関数を独自のドキュメント準備完了関数でラップしないでください。

関数を参照するときは、関数名 " sideNav" だけを入力します。" " のように括弧を追加すると、sideNav()その関数がすぐに実行され、その関数の値が返されます。何か他のものが返されない限り、デフォルト値は "未定義」であり、括弧を追加すると、ドキュメント対応関数がまったく機能しません。

$(document).ready(function() {
    $(".side-nav ul li a").on('click', sideNav);

    $(".side-nav .page-header h1 span").on('click', function() {
        $(".side-nav ul li a").off('click');
    });
});
于 2012-12-03T22:09:12.043 に答える