2011-12-06 143 views
1

我正在尝试为当前项目创建一个jquery treeview插件。插件可以在这个时候与Firefox运行良好;但是,在使用IE浏览器运行时,所有CSS样式都无法应用。例如,我在css文件#button {...}中定义,然后当我使用id =“button”生成控件时,它无法从css中检索样式。我该如何解决这个问题?将css样式应用于jquery插件

这是我的一些代码

在js文件

createControls = function() { 

    nDiv = document.createElement("div");  
    nTxt = document.createElement("input"); 
    nTxt.setAttribute('id','txtAdVal'); 
    nTxt.setAttribute('type','text'); 
    nTxt.setAttribute('style' , "width:300px"); 

    nBut = document.createElement("button"); 
    nBut.innerHTML = "Show Active Directory Tree"; 
    nBut.setAttribute("class", "button"); 

    nDiv.appendChild(nTxt); 
    nDiv.appendChild(nBut); 

    $(nBut).bind('click', function(event) { 
     createTree(); 
    }); 

    return nDiv; 
}; 

,并在CSS文件

.button{...} 
+4

您可以发布您的代码和相关信息? – Blender

+0

将其编辑到您的问题中。此外,格式化您的代码。突出显示它并按下“Ctrl + K”。 – Blender

+0

对不起,对这里的评论系统不是很熟悉:) –

回答

0

要改变什么:

nBut.setAttribute("class", "button"); 

要:

nBut.className = "button"; 

既然你已经有包括jQuery的,你也可以确保你正在做的一切跨平台:

nBut = $("<button class='button'>Show Active Directory Tree</button>"); 
nDiv.append(nBut); 

注意,这需要nDiv是一个jQuery对象(nDiv = $('div'))。

我发现计算器这样的回答:How can I reliably set the class attr w/JavaScript on IE, FF, Chrome, etc.?

+0

嗯不知何故,我怀疑不使用改变元素的类的jQuery方法将修复任何东西。 – jli

+0

@jli在我开始使用jQuery之前,我使用了'className'并从未遇到过问题。 – Jasper

+0

太棒了!它适用于className属性。我也有一些地方使用setAttribute('id','...'),它仍然无法使用IE浏览器。有id值的解决方法吗? –