2011/12/20

[JavaScript] iPhone で alert, confirmを使うと動きが変になった


ボタンを押すと「***していいですか?」という確認ダイアログが出てきて、「OK」を押すと処理を続けて、「キャンセル」を押したら中断ってな処理を作った。
ダイアログはtouchendイベントで出てくるようにした。
どっちを押したとしても、それぞれの処理をして終わり…になる予定だったが、ダイアログが閉じた後、ボタンをタッチすると(touchstart)指を離さなくても、もう一度同じダイアログが表示されるようになった

alertでも同じようなことが一度あった。iPhoneだとalertやconfirmでダイアログが出ると、イベントが途中で止まって、もう一度触ると止まったとこから再度動き出す…ようなイメージ。

対処法::クリックイベントの中身を全部setTimeoutで囲った。
  1. elem.addEventListner("click"function(){  
  2.  setTimeout(function(){  
  3.   //クリック時の処理  
  4.  }, 0);  
  5. });  

0 件のコメント:

コメントを投稿