確認ボタン(yes-button)が押されたときに関数を呼び出し、別の関数をパラメータとして渡し、別の関数で2つの異なるボタンクリックにバインドするカスタム確認ボックスのコードを書きましたパラメータ。たとえば:すべてが期待どおりに起こるjQueryコールバック関数が累積
$('#button1').click(function() {
callFunction(function() { alert("test"); });
});
$('#button2').click(function() {
callFunction(function() { alert("test2"); });
});
function callFunction(callback) {
//code to display custom confirm box
console.log(callback);
$('.confirm-box .yes-button').click(function() {
callback();
});
}
、ボックスが表示され、確認ボタンの上に私が実行するコールバック関数を取得し、それが(確認ボックスと呼ばれたボタンに応じて、または「TEST2」)「test」を警告する]をクリックして確認します。この問題は、「テスト」を警告する関数を送信するbutton1をクリックした後、キャンセルすることを確認する代わりに(期待どおりに何も起こらない)、alert2()をコールバック関数として渡すbutton2をクリックすると発生します。今度は「test2」だけを警告するのではなく、「yes」ボタンを押すと、「test2」と「test」アラートが表示されますが、console.logにはそのボタンの時点で "test2"クリック。これらのコールバック関数はどこかに積み重なっているようですが、どこで、なぜか分かりません。
別の 'click'イベントを宣言するのではなく、グローバルスコープで' callback'を上書きしようとします。 –
イベントハンドラを別のイベントハンドラにバインドするのはほとんど常に間違っています。 – Barmar