2012-07-30 90 views
0
function globalModelToggleClicked(modname) 
{ 
var state = this.checked ? true : false; 
var display = this.checked ? 'inline-block' : 'none'; 
var inputs = document.getElementsByTagName('input'); 
var input_l = inputs.length; 

// check uncheck inputs checkboxes 
while(input_l--) 
{ 
    var input = inputs[input_l]; 
    if(input.getAttribute('class') == modname) 
    { 
    input.checked = state; 
    } 
} 

// show/ hide all colorings 
var main = document.getElementById('main'); 
var divs = main.getElementsByTagName('div'); 
var divs_l = divs.length; 
var regex = new RegExp(modname); 

while(divs_l--) 
{ 
    var div = divs[divs_l]; 
    if(regex.test(div.getAttribute('class')) 
    && (/hit/.test(div.getAttribute('class')) 
     || /seqBorder/.test(div.getAttribute('class')) 
     ) 
    ) 
    { 
    div.style.display = display; 
    } 
} 
} 




function localModelToggleClicked(modname) 
{ 

    var display = this.checked ? 'inline-block' : 'none'; 
    // get parent fieldset 
    var fieldset = this.parentNode; 
    while(fieldset.nodeName != 'FIELDSET') 
    { 
    fieldset = fieldset.parentNode; 
    } 

    // show/ hide all colorings 
    var divs = fieldset.getElementsByTagName('div'); 
    var divs_l = divs.length; 
    var regex = new RegExp(modname); 


    while(divs_l--) 
    { 
    var div = divs[divs_l]; 
    if(regex.test(div.getAttribute('class')) 
    && (/hit/.test(div.getAttribute('class')) 
     || /seqBorder/.test(div.getAttribute('class')) 
     ) 
    ) 
    { 
     div.style.display = display; 
    } 
} 
} 

上述两个函数切换div的可见性。除了IE浏览器(8)之外,它们在所有浏览器中都能正常工作,而且我不知道哪里出了问题。我试过调试器,它什么也没有显示。这些函数在其他函数的外部脚本上运行。当我在函数内部提醒时,一切似乎都是按顺序的。任何人都可以帮助 ?Javascript在Internet Explorer中切换

+1

Javascript库是否存在这个问题?这可以用jQuery的几行代码来编写,而且你不太可能遇到浏览器不兼容问题。 – 2012-07-30 13:04:42

+0

我在jquery中做了这个工作,这是一个类似的问题,所以我用JavaScript编码,它似乎解决了这个问题,但不是,Internet Explorer不喜欢这个代码:( – user1338194 2012-07-30 13:07:42

+0

)你能解释一下这些函数是如何工作的吗?打算用吗?一个jsFiddle演示也会很酷。 – 2012-07-30 13:25:57

回答

0

问题出在getAttribute('class')显然IE不接受这个。所以我用className来代替。在所有浏览器中都能完美运行。

相关问题