1

ホットキープラグインでJQueryを使用していますが、イベントのバインドを解除できません。具体的には、そのキープレスにバインドされているメソッド内のキープレスイベントのバインドを解除しようとしています。

例えば:

$(document).bind('keydown', 'space', doStuff)

function doStuff() {
    alert("Doing stuff");
    $(document).unbind('keydown', 'space');
}

バインド解除呼び出しAPIを誤解した可能性があると思います-3番目のパラメーターを指定する必要がありますか?一部のドキュメントでは、このパラメーターとしてバインドするために最初に提供した関数ハンドラーを提供する必要があるようですが、その関数ハンドラーは、バインド解除を呼び出す関数そのものなので、ハンドルがありませんか?または私は?

今日まで、私は以下を使用していたことに注意してください。

$(document).unbind('keydown');

これは問題なく機能しました。コード内のいくつかのポイントで「スペース」をバインドおよびバインド解除する必要があり、これでうまくいきました。しかし今、私は他のキーの押下もバインドしており、この呼び出しが(当然のことながら)すべてのキーのすべてのキーの押下のバインドを解除していることがわかりました。

では、ホットキープラグインを使用して、または使用せずに、特定のキーを押したときに一部またはすべてのイベントのバインドを解除するにはどうすればよいですか?

4

1 に答える 1

1

名前空間を使用する必要があります。

$(document).bind('keydown.space', 'space', doStuff)

function doStuff() {
    alert("Doing stuff");
    $(document).unbind('keydown.space', 'space');
}
于 2011-08-31T06:08:20.037 に答える