5509

jQuery1.6以降でattr(“offsetHeight”)、attr(“offsetWidth”)が取れない

attr(“offsetWidth”)も。詳しい話は置いておいて、1.6からattr周りの仕様が変わって、prop(“offsetHeight”)とかやれってことなんでしょうかとか思ったら、後方互換の問題が当然発生してしまうので、やっぱり1.6.1で元に戻したよとか、そういう話になってたはずなのにattr(“offsetHeight”)は取れないのです。

たとえ以降のバージョンで直ったとしても、1.6と1.6.1でだめならなんかもう色々面倒なことになる気がする・・・exValidationとかjQselectableで、というか色んな場面でattr(“offsetHeight”)を乱用?してたのでこの仕様変更(バグ?)は結構辛いのです。

こういう人他にもいないですかね。propと併用するよりは、ピンポイントな話なので、

$(hoge).attr("offsetHeight")
$(hoge).attr("offsetWidth")

とかやってた箇所を

$(hoge).get(0).offsetHeight
$(hoge).get(0).offsetWidth

というように、DOMから参照するように置き換えると1.6以降でも動作するようになります。

Author

nori
nori
- UI Engineer
Location
- ,