これは実際にはコールバックで行う必要があります。あなたが求めているものに最も近いのは、いくつかのカスタムイベントでパブリッシュおよびサブスクライブモデルを使用することです。
そうするために:
ユーザーが[はい]ボタンをクリックすると、clickedYesというカスタムイベントがトリガーされます。「いいえ」についても同じようにします
$('#yesbtn').click(function(){
$(document).trigger('clickedYes');
});
$('#nobtn').click(function(){
$(document).trigger('clickedNo');
});
次に、これらのイベントを「リッスン」またはサブスクライブし、コンテキスト内で適切なアクションを実行する必要があります。
架空の状況を作成しましょう:ユーザーが[削除]をクリックし、その選択を確認したいとします。
最初に、[はい]をクリックした場合に何をしたいかを設定します。
$(document).unbind('clickedYes'); //Unbind any old actions
$(document).bind('clickedYes',function(){
//Code to delete the item
//Hide the popup
});
次に、[いいえ]をクリックした場合に何をしたいのか:
$(document).unbind('clickedNo'); //Unbind any old actions
$(document).bind('clickedNo',function(){
//Hide the popup and don't delete
});
したがって、clickedYesまたはclickedNoをリッスンするアクションを設定しました。ここで、ユーザーにポップアップを表示して、ユーザーが[はい]または[いいえ]をクリックする必要があるようにする必要があります。その場合、上記のイベントがトリガーされます。
したがって、myConfirm()関数は次のことを実行します。
function myConfirm(msg){
//change the message to 'msg'
//Show the popup
}
したがって、順序は次のようになります。
- カスタムイベントのトリガーを[はい]ボタンと[いいえ]ボタンにバインドします
- プロンプトを表示する前に-古いアクションのバインドを解除し、新しいアクションを添付します
- アクションをトリガーするポップアップをユーザーに提示します。
これにより、このmyConfirm('Are you sure');のような関数を呼び出すことができます。それはあなたが求めているものではありません...しかし、私はあなたが望むことを正確に行うことは不可能だと思います。