Javascript Firefox、ie7和ie6不能使用此java脚本
在下面的java脚本中,firefox、ie7和ie6不能正常工作(ie8在之后工作) applied getElementsByClassName.polyfill.js.)有人能在下面的脚本中找到任何问题吗 firefox、ie7和ie6能否正常工作?(在应用polyfill.js之前,Chrome和safari工作良好。) 此java脚本旨在通过单击打开和关闭多个级别的类别Javascript Firefox、ie7和ie6不能使用此java脚本,javascript,css,Javascript,Css,在下面的java脚本中,firefox、ie7和ie6不能正常工作(ie8在之后工作) applied getElementsByClassName.polyfill.js.)有人能在下面的脚本中找到任何问题吗 firefox、ie7和ie6能否正常工作?(在应用polyfill.js之前,Chrome和safari工作良好。) 此java脚本旨在通过单击打开和关闭多个级别的类别 /*------------------------------------------ Open or close
/*------------------------------------------
Open or close the specified node.
------------------------------------------*/
function openOrClose(tgt){
//To make the list visible when the specified node is hidden.
if(tgt.style.visibility == "hidden"){
tgt.style.display = "block";
tgt.style.visibility = "visible";
tgt.style.height = "auto";
tgt.style.paddingTop = "0.25em";
tgt.style.lineHeight = "1em";
tgt.style.opacity = 1.0;
}
//To make the list hide when the specified node is not hidden.
else{
tgt.style.display = "none";
tgt.style.visibility = "hidden";
tgt.style.height = "0px";
tgt.style.paddingTop = "0";
tgt.style.lineHeight = 0;
tgt.style.opacity = 0;
}
}
/*------------------------------------------
To open the list
------------------------------------------*/
function listopen(lv, num){
var tgt = document.getElementsByClassName("level" + lv)[num];
//To search the next level -> to open the next level list.
for(var i=0; i < document.getElementsByClassName("level" + (lv+1)).length; i++){
var next_tgt = document.getElementsByClassName("level" + (lv+1))[i];
//li
if (next_tgt.parentNode == tgt || next_tgt.parentNode.parentNode == tgt){
openOrClose(next_tgt);
}
}
//To search the next level -> change the shape of the button that is displayed.
for(var i=0; i < tgt.childNodes.length; i++){
var next_tgt = tgt.childNodes[i];
//ul
if(next_tgt.tagName == "UL"){
if(next_tgt.style.height == "0px"){
if(event.srcElement.parentNode.className == "category_header plus"){
event.srcElement.innerText = '?';
event.srcElement.parentNode.className = "category_header minus";
}
next_tgt.style.height = "auto";
}
else{
for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){
if(event.srcElement.parentNode.className == "category_header minus"){
event.srcElement.innerText = '+';
event.srcElement.parentNode.className = "category_header plus";
}
}
next_tgt.style.height = "0px";
}
}
}
}
/*------------------------------------------
To set up the click event
------------------------------------------*/
function setclickevent(tgt, lv, num){
//To make invisible when the level is other than 1.
if(lv!=1){
tgt.style.visibility = "hidden";
tgt.style.display = "none";
tgt.style.height = "0px";
tgt.style.lineHeight = 0;
tgt.style.paddingTop = 0;
tgt.style.paddingBottom = 0;
if(tgt.parentNode.tagName == "UL"){
tgt.parentNode.style.height = "0px";
tgt.parentNode.style.margin = "0";
tgt.parentNode.style.padding = "0";
tgt.parentNode.style.border = "none";
}
}
var hasLink_flg;
if(tgt.childNodes.length){
for (var j = 0; j < tgt.childNodes.length; j++) {
//To enlarge the scope where you can click.
if(tgt.childNodes[j].tagName == 'A'){
tgt.setAttribute('onclick', 'location.href="' +
tgt.childNodes[j].getAttribute('href') + '"');
}
//To add the event function of the accordion list
else if(tgt.childNodes[j].tagName == 'UL'){
//To display ? and add the list open function.
var linkObj = document.createElement("a");
linkObj.innerText = '+';
tgt.childNodes[0].className="category_header plus";
tgt.childNodes[0].appendChild(linkObj);
j++;
linkObj.parentNode.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');
//tgt.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');
break;
}
}
}
}
/*------------------------------------------
Initialization
------------------------------------------*/
// To search all the node that has level? class and initiali
function initCategoryList(){
var lv = 0;
//To add the click event to all the node that has level?
while(document.getElementsByClassName("level" + (++lv)).length){
for (var i = 0; i < document.getElementsByClassName("level" + lv).length; i++) {
setclickevent(document.getElementsByClassName("level" + lv)[i], lv, i);
}
}
}
/*------------------------------------------
打开或关闭指定的节点。
------------------------------------------*/
函数打开或关闭(tgt){
//隐藏指定节点时使列表可见的步骤。
如果(tgt.style.visibility==“隐藏”){
tgt.style.display=“块”;
tgt.style.visibility=“可见”;
tgt.style.height=“自动”;
tgt.style.paddingTop=“0.25em”;
tgt.style.lineHeight=“1em”;
tgt.style.opacity=1.0;
}
//使列表在指定节点未隐藏时隐藏。
否则{
tgt.style.display=“无”;
tgt.style.visibility=“隐藏”;
tgt.style.height=“0px”;
tgt.style.paddingTop=“0”;
tgt.style.lineHeight=0;
tgt.style.opacity=0;
}
}
/*------------------------------------------
打开列表
------------------------------------------*/
函数列表打开(lv,num){
var tgt=document.getElementsByClassName(“level”+lv)[num];
//搜索下一级->打开下一级列表。
对于(var i=0;i更改显示的按钮形状。
对于(var i=0;i
我建议您应用jQuery并编写jQuery语句,以避免浏览器差异
例如:$(tgt).hide
或者:$(tgt).css({display:“none”,height:“0px”});您的浏览器控制台中有任何错误(Firebug等)?人们仍然支持IE6???有几个css错误,我不知道它们有多重要,还有一个参考错误“未定义事件”从java脚本本身。从java脚本转换为jQuery有多困难或耗时?有没有适合这种情况的转换器?非常好的建议,非常感谢。如果您将jQuery.js应用于,只要遵循语法,就可以在文件中的任何位置编写jQuery语句。阅读手册并从中转换java脚本到jQuery随时可用。对于meeming,非常感谢您的建议,我将尝试使用它,因为您让我觉得它不会像我最初想的那么难???