javascriptのconfirmをカスタマイズしたい、けど出来ない
という所から、自作confirmを作っています。
confirmと同じような使い勝手で
- confirmが表示されている間は処理を止めて
- bool型の戻り値を返す
- 戻り値を見て続きの処理へ
というプログラムを書きたいのですが、1のやり方が分かりません。
上記の流れを崩して、confirmの見た目と処理を再現するのであれば、ネット情報を参考に
###1. こんな感じで書いてみたり
javascript
1$("#btn").on("click", function(){ 2 // 自作confirm関数 3 // 関数内で、OK/キャンセルボタン要素に引数の関数をセット 4 customConfirm( 5 "確認メッセージ", 6 function(){/* OKボタンが押された時の処理 */}, 7 function(){/* キャンセルボタンが押された時の処理 */} 8 ); 9});
###2. そもそも処理を分けて書くという方法
javascript
1$("#btn").on("click", function(){ 2 // 自作confirm関数 3 customConfirm("確認メッセージ"); 4}); 5// customConfirm内のボタン 6$("#customConfirm") 7 .on("click", "#OK_BTN.btnOnClick", function(){ 8 // OKボタンが押された時の処理 9 }) 10 .on("click", "#CANCEL_BTN.btnOnClick", function(){ 11 // キャンセルボタンが押された時の処理 12 });
###3. setIntervalを使うという声も
javascript
1$("#btn").on("click", function(){ 2 // 自作confirm関数 3 customConfirm("確認メッセージ"); 4 5 setInterval(function(){ 6 // OK/キャンセルが押されなかったら何もせずに次のIntervalへ 7 // OK/キャンセルクリック時に立つフラグで次の処理へ 8 // それぞれ条件分岐で処理を書く 9 // Intervalを消す 10 }, 200); 11});
などなど、ユーザー側から見たら確かにconfirmを再現出来ているのですが
###理想の書き方
javascript
1$("#btn").on("click", function(){ 2 // 自作confirm関数 3 // OK/キャンセルボタン押下をbool値で返す 4 var con = customConfirm("確認メッセージ"); 5 if (con){ 6 // OKボタンが押された時の処理 7 } else{ 8 // キャンセルボタンが押された時の処理 9 } 10 // その後の処理 11});
出来ればこう↑プログラムを書きたいです!
妥協して1番の書き方はスマートかなと感じています。
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/26 16:36