web-dev-qa-db-ja.com

jQueryのデバウンス機能

Ben Almanによるjqueryデバウンスライブラリを使用して、ボタンの入力をデバウンスしようとしています。 http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/

現在、これは私が持っているコードです。

function foo() {
    console.log("It works!")
};

$(".my-btn").click(function() {
    $.debounce(250, foo);
});

問題は、ボタンをクリックしても、関数が実行されないことです。何かを誤解したかどうかはわかりませんが、私が知る限り、私のコードは例と一致しています。

22
Gunther

私は同じ問題に遭遇しました。問題は、デバウンス関数がどこにも呼び出されていない新しい関数を返すために発生しています。

これを修正するには、デバウンス関数をパラメーターとしてjqueryクリックイベントに渡す必要があります。必要なコードは次のとおりです。

$(".my-btn").click($.debounce(250, function(e) {
    console.log("It works!");
}));
47
Geoff