【JQuery】.html()じゃなくって.text()
これまたお仕事の話。
JQueryを使用し、mouseenterやfocusinのときに、入力フォームに会ったdivタグのtipsを表示したりする処理があった。
が、
IE7(もうサポート外とかいうキーワードは受け付けない)では、横長ページにて右端にスクロールバーがあったとしても、該当イベントが起こったときに左端に戻る。
何故に…。
しかも原因動作っていうのが、zoomが100%以外のときっていう。
調査の過程で動作ソースを切り刻んでいくと、
$("div#hogehoge").html("ここを書き換える");
みたいな書き方をしてた部分が原因とのこと。
(理由はわからないけど、コメントアウトしていった結果そうなった)
「なんでやねん」というお決まりのツッコミをしながら下記に変更してみた。
$("div#hogehoge").text("ここを書き換える");
おお、直った。
888888.
そしてまた言う。
なんでやねん!
P.S.
$("div#hogehoge").css("top", (top - 20) + "px"); $("div#hogehoge").css("left", (left - 20) + "px");
とかして、そのtipsの表示場所を変えているんだけど、
zoomが100%以外だとtipsの表示位置が激しくずれるのはなぜだよ…