簡體   English   中英

如何確保JQuery正確地動態注入CSS並准備好使用?

[英]How to make sure JQuery dynamically inject CSS properly and ready to use?

我知道我可以這樣注入這樣的CSS:

$(document).ready(function() {
    $("a").click(function() {
        $('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
    });
});

但是,這個異步。 即使我追加鏈接,也無法保證當時的css可用。 (因為CSS下載)所以,如果有另一個js同時運行並嘗試aasign一個類,那么1)它仍然可以工作嗎? 完全下載文件后,css會在以后應用嗎?

如果沒有,是否有類似回調或某些技巧的東西我可以用來知道css已完全下載?

如果你需要保證加載並且CSS肯定在同一個域上,你可以通過Ajax請求內容然后直接注入屬性。

通過在<head>創建一個虛擬的<link>元素並使用CSS文件的內容(作為字符串)調用text() ,我很幸運(至少在iOS中)。

例如,大致:

 $("a").click(function() {
        $.get('style2.css', function (data) { 
            $('link').text(data);
            // Stuff that must happen after CSS injection here
        });
    })

但老實說,這是一個罕見的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM