一、結論
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()中,即可。
三、深度剖析
留待以后懂得時候補充,現在不太清楚啊。。。