typoする毎日

中小いっと企業にいながら、サークル的なやつをやってる人の備忘録

【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の表示位置が激しくずれるのはなぜだよ…