IE8ではtoggleが使えない。
jQuery側でis(":hidden")の結果が常にfalseになるバグがあって、常に非表示になってしまうようだ。
ちゃんとした検証はしてないので詳細は放置。
バージョン1.4以降は直っているという話があるけど、今やってる仕事では他のモジュールも使われている所為なのか、1.5でも直っていない。
特にOSがXPだとIEは6〜8になるので、最新バージョン以外は切り捨て、と言った場合でも対象にせざるを得ない。
ので必要な場合は自力で実装する。
基本となるのはこう。
if ($(this).css('display') == 'none') {
$(this).slideDown(300);
} else {
$(this).slideUp(300);
}
functionにして引数で時間指定とか出来るようにすると使い回し易い。
function slideToggle(target, speed) {
if ($(target).css('display') == 'none') {
$(target).slideDown(speed);
} else {
$(target).slideUp(speed);
}
}
更にclickイベントに追加したりとか。
$(target).bind('click', slideToggle(target, 300));
speedが300なのは趣味。
ストレスになりそうなほど遅くなく、見えなくなるほど早くなくって感じなのがこの辺。
2011年10月07日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/48360416
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/48360416
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック