JS和CSS加載(渲染)機制不同


一、結論

CSS可以在頁面加載完成后隨時渲染。舉個例子:通過js給某個元素加一個id或者css,只要這個id或者css有對應的樣式,此元素的樣式就會自動生效。

JS不可以在頁面加載完成后生效。最明顯的例子就是使用EasyUI的時候,iframe中哪些樣式無效(EasyUi是依靠JS進行樣式處理的,所以無法運行JS,那么樣式也就無法設置。簡單點說:EasyUi是一個JS的前端框架,Bootstrap是一個CSS的前端框架,二者不同)。

JS默認是不可以在頁面加載完成后生效的。

二、現象

對於EasyUi那樣的js核心的框架我沒有想到辦法,但是對於一些簡單的時間還是可以處理的。

以下是我實際開發遇到的一個問題,我將其抽象出來:

某個按鈕class為"tt"不是原生的HTML存在頁面中的,而是通過頁面加載過程中的JS生成的.

在最初我有如下語句:

$(".tt").click(function(){
     alert("xxx");
});

但是這個方法死活觸發不了,根據上述第一點我的結論可知,這個是因為頁面的JS已經加載完了,此時元素還沒有生成。自然而言的無法有效的綁定事件。

那么怎么處理了?

<button onclick="mc-alert()">TELL</button>

將alert()放在方法mc-alert()中,即可。

三、深度剖析

留待以后懂得時候補充,現在不太清楚啊。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM