дисплей: ни один не работает в IE7 - PullRequest
3 голосов
/ 10 ноября 2010

Ситуация: - Я создал группу RadioButton.Когда пользователь выбирает переключатель в зависимости от его выбора, отображается содержимое, а другое содержимое удаляется.

Проблема: - Страница работает нормально во всех браузерах, кроме IE7.Мне нужно решение, которое работает и в IE7.

Код: -

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE7 Bug display:none</title>
    <style>
        #entireContent, #div1, #div2{
            display:block;
        }
    </style>
    <script type="text/javascript">
        function displayDiv1(){
            document.getElementById('div1').setAttribute('style','display:&quot');
            document.getElementById('div2').setAttribute('style','display:none');

        }
        function displayDiv2(){
            document.getElementById('div1').setAttribute('style','display:none');
            document.getElementById('div2').setAttribute('style','display:&quot');  
        }
    </script>
</head>
<body>
    <div id="entireContent">
        <input type="radio" name="group" value="t1" onclick="displayDiv1()">TEST 1<br>
        <input type="radio" name="group" value="t2" onclick="displayDiv2()">TEST 2<br>
        <div id="div1">TEST 1</div>
        <div id="div2">TEST 2</div>
    </div>
</body>
</html>

Ресурсы, на которые делаются ссылки: - http://www.positioniseverything.net/explorer/ienondisappearcontentbugPIE/index.htm

Я попробовал подход, представленный в ресурсе,это не сработало.

Пожалуйста, помогите мне решить эту проблему.Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 10 ноября 2010

Вместо этого можно попробовать:

Для отображения:

document.getElementById('element_id').style.display = 'block';

Для скрытия:

document.getElementById('element_id').style.display = 'none';

Это должно сработать.

4 голосов
/ 20 июля 2012

Хотя я согласен, что вы должны получить доступ к свойству, используя .style.display Я хотел бы отметить правильный способ изменения атрибутов элементов.

document.getElementById('div2').setAttribute('style','display:&quot');

Это не будет эмулировать .style.display='', так как это неправильный синтаксис для атрибута (css), и даже если с этой частью все в порядке, есть только одна кавычка, поэтому в этом образе мышления вы устанавливаете атрибут отображения равным остальным всего документа.
Правильный способ удалить атрибут - использовать функцию removeAttribute, например:

document.getElementById('div1').setAttribute('style','display:none');
document.getElementById('div2').removeAttribute('style');
0 голосов
/ 10 ноября 2010

попробуйте использовать

document.GetElementById('div1').style.display = "block";
document.GetElemebtById('div2').style.display = "none";
...