簡単な処理やデバッグ時などでは、まだまだ重宝するalert()。
例えばよくあるこんな処理。
1 2 3 4 |
$("input").focus(function () { alert("Hello!!"); return false; }); |
ところがGoogle Chromeを使用した場合、「Hello!!」のダイアログを消しても消しても、延々とダイアログが表示し続ける無限ループが発生する場合がある。
アラートを出した後に、自動的に要素に対してフォーカスが行われ、その結果処理の繰り返しになるらしい。
なので、単純な解決策としては、アラートを出した後に、フォーカスを外してやればよい。
1 2 3 4 5 |
$("input").focus(function () { alert("Hello!!"); $(this).blur(); // focusを外す return false; }); |
なお、アラート後、また同じ要素にフォーカスさせ、かつ無限ループさせない方法はこちらを参照。