0

なぜ私はそれを間違っているのですか?amin.css をロードしておらず、adminNotes.css を削除していません。

if(($(".AdminNoteContainer").length <= 0)){
         $("head").append($('<link rel="stylesheet" href="css/main.css" />'));
         $('head *[href*="css/adminNotes.css"]').remove();
    };
4

1 に答える 1

3

あなたの問題は.length(なぜあなたが を持っているのかわかりませんが<= 0、単に を実行する=== 0か、それ以上if(!$(".AdminNoteContainer").length)のことを行うことができます) ではなく、CSS を追加する方法にあります。

<link>IE 8 (および私が思うに 9 でも) では、ページがレンダリングされた後にタグを追加することはできません。CSS を追加するには、IE 固有のメソッドを使用する必要があります。 document.createStyleSheet.

getStyleSheetCSS を追加する正しい方法をチェックするメソッドを作成するのが好きです。これは、存在するdocument.createStyleSheet場合は使用し、存在しない場合は<link>タグを追加します。

$.getStyleSheet = function(url){
    if(document.createStyleSheet){
        document.createStyleSheet(url);
    }
    else{
        $('<link />', {
            type: 'text/css',
            rel: 'stylesheet',
            href: url
        }).appendTo('head');
    }
};

次に、次のように簡単に実行できます。

if(!$(".AdminNoteContainer").length){
    $.getStyleSheet('css/main.css');
    $('head *[href*="css/adminNotes.css"]').remove();
}
于 2013-09-13T18:29:39.810 に答える