0

gradClass次の関数では、実行時にグラデーションの背景をdivに適用するために追加しようとしています。

function applyGradient(upto) {

    var gradStyle = "background: -webkit-linear-gradient(left, #ff1a00 20%,#ffffff 30%);"
                    + "behavior: url(PIE-1.0.0/PIE.htc);"
                    + "-pie-background: linear-gradient(#ff1a00 20%, #ffffff 30%);";

    var newPercent = Math.floor(upto / end * 100);
    gradStyle = gradStyle.replace(/20/gi, newPercent);
    gradStyle = gradStyle.replace(/30/gi, "100");
    gradClass = ".gradClass{" + gradStyle + "}";

    //method 1
    //jQuery('head').append($('<style>').text(gradClass));
    //error: IE8 some known issue in jQuery library

    //method 2
    //var styleTag = document.createElement('style');
    //styleTag.type = "text/css";
    //styleTag.appendChild(document.createTextNode(gradClass));

    //method 3
    document.getElementsByTagName('style')[0].innerHTML += gradClass;
    // Unknown runtime error in IE8.

    jQuery("#container").addClass("gradClass");
}

コードはChromeでは正常に機能しますが、IE8では失敗します。method 1jQueryを使用してクラスを適用できなかったため、他の2つのアプローチも試しました。

私は何を間違っているのですか?

4

2 に答える 2

0

JQueryのCSS関数を使用してみてください。

http://api.jquery.com/css/

$("div").click(function () {
  var color = $(this).css("background-color");
  $("#result").html("That div is <span style='color:" +
                     color + ";'>" + color + "</span>.");
});
于 2013-01-18T18:22:09.143 に答える
0
var $css = $('<style/>');
$css.appendTo('head');
$css.append("\n\
.hello { color:black; }\n\
.world { color:red;   }");
于 2013-01-18T18:34:00.607 に答える