2013-06-13 3 views
1

У меня есть эффект разветвления (не уверен в имени). Я не очень хорош в javascript и jquery, но могу немного изменить. И с этими знаниями я сделал этот эффект.javascript IE проблема. Не работает только в IE

Вы можете увидеть Live Demo: http://saifraihan.webege.com/Branching%20New/branching.html

Вот мои:

HTML

<form id="survey" action="#" method="post"> 
    <div id="section"> 
      <label for="Select">Select a step</label> 
      <select id="select" onchange="selection(this);"> 
        <option value="none"> 
          Input1 
        </option> 
        <option value="radio"> 
          Radio1 
        </option> 
      </select> 
    </div> 
    <div id="section2" style="display:none;"> 
      <input name="" type="text"> 
    </div> 
    <div id="section5" style="display:none;"> 
      <p> 
        Radio Step 1<br/> 
        <label> 
          <input type="radio" name="RadioGroup2" value="radio" id="RadioGroup2_0"> 
          Radio</label> 
        <br> 
        <label> 
          <input type="radio" name="RadioGroup2" value="radio" id="RadioGroup2_1"> 
          Radio</label> 
        <br> 
      </p> 
    </div> 
</form> 

JS:

var sections ={ 
'none': 'section2', 
'radio': 'section5' 



}; 

var selection = function(select) { 

for(i in sections) 
    document.getElementById(sections[i]).style.display = "none";  
    document.getElementById(sections[select.value]).style.display = "block"; 

} 

Th это пример работы в FF, Chrome и Opera. НО ПРОБЛЕМА есть, она не работает ни в одной версии IE. Я не знаю, почему. Поскольку я слабый в javascripts, я не понимаю, почему это не работает в IE. Может ли быть какое-то решение этого? Если это может быть отлично.

Спасибо заранее.

ответ

1

Bind вашего мероприятия, как это:

document.getElementById('select').addEventListener('change', function() { selection(this) }); 

Это казалось исправить вещи для меня в IE (10). Если вам необходимо поддерживать 8 или раньше: события добавляются с использованием attchEvent в этих версиях IE. Таким образом, вам также нужно будет написать эту логику (или вы можете использовать jQuery или какую-либо другую библиотеку для обработки файлов crossbrowser для вас).

Fiddle: http://jsfiddle.net/jnuFq/2/

+0

это замечательно и работает Шифрование до IE 9. Большое спасибо . И какой jQuery я могу использовать там для поддержки IE 8 и более поздних версий? Можете ли вы мне помочь? Извините, я очень плохо разбираюсь в этих jQuery и javascripts. –

+0

Вы используете тот же jQuery для всего. В этом весь смысл. Это инструмент нормализации DOM API. –

+0

В jQuery вы бы выполнили '$ ('# select'). On ('change', function (e) {// ...});' –

Смежные вопросы