14

CSSを適切に「左」に使用して、jQueryの助けを借りて移動する絶対配置要素があります。

$("#element").css('left', '103px');

Firefox では、これは期待どおりに機能します。ただし、Safari では、Web インスペクターの element.style の下にスタイルが表示されるのを確認できますが、スタイルは更新されません。一致する CSS ルール (div に直接適用されていないものも含む) を無効 (および再度有効) にすると、jQuery で適用されているスタイルがレンダリングされます。

jQuery 1.7.2 を使用して、古い PowerMac で Safari 5.0.6 を実行しています。

4

5 に答える 5

13

私は一度この問題に直面し、要素の親コンテナでaddClassとremoveClassを使用することになります。

これを試して

$("#element").css('left', '103px').parent().addClass("dummyClass").removeClass("dummyClass");

それがうまくいかない場合は、次のことが確実に機能します。

$("#element").css('left', '103px');
$("body").addClass("dummyClass").removeClass("dummyClass");

問題は、CSSを変更したときにサファリがページを再描画しないことがあるため、強制的に再描画する必要があることです。

于 2012-07-04T08:14:37.883 に答える
0

重要なトリックを行う必要があります

$("#element").css('left', '103px !important');
于 2012-07-06T07:43:03.470 に答える
-1

まあ、サファリ5.1.7でうまくいきます

.css() が失敗したときの私の経験では、時間として 0 を指定して .animate() を試します (インスタント)

このようなことを試して、うまくいったかどうか教えてください(サファリ5.1.7でテストされ、うまくいきました)

        $(document).ready(function(){
           $("#element").animate({
               left: '+=103px'
           }, 0);
        });
于 2012-07-02T23:52:23.340 に答える