2012-07-12 18 views
1

我有以下的html:如何重新加載JavaScript調用後的樣式?

<div class="sk-toolbar-tools-primary"> 
    <span class="sk-custom-select"> 
     <select name="music-sort-select" id="music-sort-select"> 
      <option value="option1">Company 1</option> 
      <option value="option2">Company 2</option> 
      <option value="option3">Company 3</option> 
    </select> 
    </span> 
</div> 

正如你所看到的這個選擇元素使用CSS樣式風格,現在,如果我發佈使用AJAX調用,並使用此Javascript功能注入到選擇的響應,從數據庫公司:

function loadCompanies(){ 
    var companies= getCompanies(); 
    var select = document.getElementById("music-sort-select"); 
    for(var i = 0; i<companies.length; i++) { 
     select.options[select.options.length] = new Option(companies[i].name,companies[i].id); 
    } 

} 

其中getCompanies()做AJAX調用,會發生什麼是JavaScript功能工作正常,我可以使用開發工具中鉻出版看到從數據庫中的數據,但選擇停止工作,它不會打開並顯示選項。我想這是因爲新的選項在頁面已經加載後加載時沒有采用CSS樣式。 我該如何解決這個問題?

+0

jQuery的關於()函數可以幫助這裏:http://api.jquery.com/on/ – 2012-07-12 15:17:59

+0

怎麼會'在'修復幫助?我在頁面加載時調用JS函數。 – Sami 2012-07-12 15:39:18

+0

你使用什麼類型的Ajax,異步或同步? – Engineer 2012-07-12 16:24:01

回答

0

即使將新事物添加到DOM,瀏覽器也應立即應用CSS。您是否使用選擇框替換腳本來使選擇框通過CSS進行風格化?

+0

沒有。即時通訊只是在HTML中應用CSS。 – Sami 2012-07-12 15:20:35

+0

你可以發佈一個鏈接,以便我們可以真正看到發生了什麼? CSS不會停止打開選擇框,並且將新項目動態添加到選擇框也不應阻止其工作。你是否瀏覽器測試?選擇框很難對跨瀏覽器進行設計,因此選擇框替換腳本和插件的數量激增。 – danwellman 2012-07-12 16:25:58

0

可以使用jQuery
做給你的風格,按鈕IDS

jQuery(function($) { 
var $output = $('#output') 
    , $style = $('#styles') 
    , $button = $('#preview') 
; 
$ed.val($style.html()); 
$button.click(function() { 
    $style.html($output.val()); 
    return false; 
}); 
}); 
相關問題