2017-01-27 13 views
1

Safariが動作するのは本当に奇妙で、私が作業しているプロジェクトで多くの問題を引き起こす追加のプロパティが追加された理由はわかりません。jQueryでバックグラウンドプロパティを変更するとSafariで問題が発生する

テストはここで少しフィドルだ、非常に単純です:

function clickme() { 
 
\t $('.container').css('background', "red"); 
 
}
.container { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"></div> 
 
<button onclick="clickme();">Click me!</button>

あなたが期待するようクロムまたはFirefoxで、それは今のSafari追加で、background: redを追加することがわかりますこれは:

style="background-color: red; background-position: initial initial; background-repeat: initial initial;" 

これは、私が事前定義されたCSSスタイルのbackground-image、私はの背景を設定する必要があります: '#色'は必須です。そうでない場合、background-imageは要素内にインラインであっても常にbackground-colorを超えます。サファリは今私の友人ではありません。

これに解決策はありますか?私はそれをお願い申し上げます。

ありがとうございます。

+0

http://caniuse.com –

答えて

0

プロパティインラインの略語backgroundを使用しているようです。

$('.container').css('background-color', 'red'); 

またはあなたのbackgroundプロパティを持つクラスを使用して試みることができる:その個々のプロパティに出速記background財産を分離してみ

.bg { 
    background: red 
} 

$('.container').addClass('bg'); 
+0

問題は、I ChromeやFirefoxのように「背景:赤」にする必要があります:/ Safariのバグのようですね。現在、jQueryを使用しているのは、setAttributeを使用してプレーンJavascriptを使用すると発生しないためです。これがjQueryの問題です。 – msqar

+0

私はそれを行うことはできません、それはインラインスタイルにする必要があります。助けようとしてくれてありがとうtho。 – msqar

+0

@msqarインラインスタイルではサポートされていないようです。あなたが回避策を見つけることを願っています:) –

関連する問題