2012-07-12 96 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; 
}); 
}); 
相关问题