2010-11-10 2 views
3

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

Проблема: - Страница работает отлично во всех браузерах, кроме 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

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

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

+1

Что такое дисплей: & Quot? – MatTheCat

+0

«Дисплей: & quot;», конечно, неверен. Где закрывающая цитата? – leppie

+0

'Дисплей: & quot; аналогичен дисплею:' '. Цель состояла в том, чтобы удалить свойство отображения из стиля элемента. – vedvrat13

ответ

5

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

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

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

Чтобы скрыть:

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

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

0

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

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

Спасибо Тим. Решение, которое вы предоставили, решило мою проблему. – vedvrat13

4

Хотя я согласен, вы должны получить доступ к свойству с помощью .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'); 
Смежные вопросы