これが私の問題です。インライン スタイルを無効にする回避策として .removeAttr() を使用しました。削除した属性を復元する必要がある場合があります。まだ可能ですか?または、私が使用できる代替ソリューションを提案できますか。
removeAttr() のトリガーは、ブラウザーからのメディア クエリです。ブラウザのサイズが変更されると、dom 内の要素の位置も変更されます。デフォルトで、HTML にはインライン スタイルが使用されています。ただし、サイズを小さくする場合は、要素を別の位置に移動する必要があり、元の縮尺またはより広いビューに戻す場合は、削除された属性も復元する必要があります。
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
jQuery(function() {
var pause = 100; // will only process code within delay(function() { ... }) every 100ms.
jQuery(window).resize(function() {
delay(function() {
var width = jQuery(window).width();
if( width >= 958 && width <= 1400 ) {
if(jQuery(".box1 #move_me").length == 0) {
// needs to restore the removed "style" attribute
jQuery("#move_me").appendTo(jQuery(".box1"));
}
} else if( width >= 768 && width <= 959 ) {
} else if( width >= 480 && width <= 767 ) {
jQuery("#move_me").insertAfter(".box2 .insert_below").removeAttr("style");
} else if( width <= 479 ) {
jQuery("#move_me").insertAfter(".box3 .insert_below").removeAttr("style");
}
}, pause );
});
jQuery(window).resize();
});
jsfiddle: http://jsfiddle.net/EFzy7/embedded/result/ (変更を確認するためにサイズを変更します) - 気付いた場合、デフォルトでは、より広い画面 (960px または 1200px 以上) を使用している場合、「hello world」赤で、arial フォントである必要があります。サイズを変更すると、別の div/box に移動します。ただし、サイズを変更してワイド スクリーンに戻すと、テキストは元の外観 (赤い arial) ではなくなります。
削除された属性を復元する方法はありますか? いいえの場合、私の問題の回避策は何だと思いますか?
ありがとうございました。