0

確認が済むまでボタンクリックの進行を止める方法を探しています。

「Show Confirm Box」が true を返すまで一時的に進行を停止する方法をアドバイスしてください。これで、私の関数はそれに関係なく前進し続けます。

.click(function(){
    //Show Confirm Box <- will return true of false

    //Start Process if true;

});

どうもありがとうございました。

4

3 に答える 3

2

への呼び出しconfirm()は同期的です。つまり、ユーザーがボックスを閉じるまで、コードは実質的に一時停止されます。

if (confirm('some message')) {
    // User confirmed, do something here
}

を使用しておらずconfirm()、独自のカスタム モーダル ダイアログなどを使用している場合は、コールバックを使用する必要があります。

ユーザーにはページがロックされているように見えるため、スクリプトの実行をブロックしないでください。代わりに、ダイアログを表示する関数にコールバック関数を渡し、完了したらダイアログにその関数を呼び出させます。

function showDialog (confirmCallback) {
    // Show dialog here
    if (result === 'yes') { // replace this, obviously
        confirmCallback();
    }
}

.click(function(){
    showDialog(function () {
        // start process
    });
});
于 2012-12-27T06:37:36.107 に答える
1

クリック イベントのパラメーターは、クリック イベントが発生したときに実行される関数ハンドラーです。

そのため、確認ダイアログが false 値を返した場合は、いつでもその関数から戻ることができます。

コードはこのようになります

jQuery(".button").click( function(){
   var ans = confirm("Do you want to proceed further ?");
   if(!ans) return;

   alert("Now you can code the rest ");

}); </p>

フィドルを作成しました。以下を確認してください

http://jsfiddle.net/shidhincr/Ubj7S/1/

于 2012-12-27T06:40:21.193 に答える
0

この質問を見ましたか? カスタム確認ボックスでの実行の一時停止

コードを分割し、確認ボックスからのユーザー入力に従って関数を呼び出すだけです

于 2012-12-27T06:36:02.423 に答える