1

このコードを見てください:

$(window).on('load resize scroll', function() {
    console.log('hello');
});

$(window).on('load resize scroll', function() {
    console.log('goodbye');
});

ある時点で、「こんにちは」がコンソールに記録されないようにしたいが、それでも「さようなら」が記録されたい場合は、どうすればよいですか?

これのため:

$(window).unbind('load resize scroll');

両方のログをキャンセルします。

4

2 に答える 2

4

イベント名前空間を使用する

イベント名は、イベントの削除またはトリガーを簡素化するイベント名前空間によって修飾できます。たとえば、「click.myPlugin.simple」は、この特定のクリック イベントの myPlugin と単純な名前空間の両方を定義します。その文字列を介してアタッチされたクリック イベント ハンドラーは、要素にアタッチされた他のクリック ハンドラーを妨害することなく、.off("click.myPlugin") または .off("click.simple") で削除できます。名前空間は、階層的ではないという点で CSS クラスに似ています。1 つの名前だけが一致する必要があります。アンダースコアで始まる名前空間は、jQuery 用に予約されています。

$(window).on('load.one resize.one scroll.one', function() {
    console.log('hello');
});

$(window).on('load.two resize.two scroll.two', function() {
    console.log('goodbye');
});

それから

$(window).off('load.one resize.one scroll.one');
于 2013-09-25T16:52:06.153 に答える
3

ハンドラーに名前を付けます。

function sayHello() {
    console.log('hello');
}

function sayGoodbye() {
    console.log('goodbye');
}

$(window).on('load resize scroll', sayHello);
$(window).on('load resize scroll', sayGoodbye);

こんにちはと言うのをやめたいときは、それを回してoffください:

$(window).off('load resize scroll', sayHello);
于 2013-09-25T16:53:41.093 に答える