プログラミング中に詰まったメモ(ブラウザインターフェイス編)
個人で使うアプリケーションのブラウザインターフェイスを作っていたところ、いくつか詰まったのでメモしておきます。
JavaScript の整数値の上限、下限に注意
サーバー側を Python で、クライアント側を jQuery で作っていました。サーバーから大きな整数値をフロントに渡し、さらにそれをいくつかサーバーに送り返すというプログラムを書いていたのですが、なぜか値がおかしくなっておりその後の処理が動かないという状況が起こりました。
JavaScript は整数値を 64bit 浮動小数点数の形式でもっているため、上限がそんなに大きくない値で定まっています。そのことを失念していたため、端数が切り捨てられて違う値になっていました。
なんらかの id など、大きい値の場合は、文字列でやり取りするべきでした。
jQuery で、追加された要素の on click が反応しない
$(".some_class").on("click", function() { alert(1); });
なんらかのイベントで追加される .some_class クラスを持った DOM が生成されるとき、上記の設定では反応がありません。正しくは次のようにする必要があります。
$(document).on("click", ".some_class", function() { alert(1); });