Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает onclick в opera и ie (https://javascript.ru/forum/events/12405-ne-rabotaet-onclick-v-opera-i-ie.html)

[MI_nor] 15.10.2010 23:33

Не работает onclick в opera и ie
 
Здрасьте, имеется вот такой код...
function click(id){
    for (i=5;i<9;i++){
        if (i==id){
            document.getElementById('cat-'+id).style.display = 'block';
        } else {
                document.getElementById('cat-'+i).style.display = 'none';
            }
    }
}

function change(id,src){
        document.getElementById(id).src = src;
}


И к примеру обрабатываем...

<img src="" class="catimg" onmouseout="change(5,'5.jpg');" onmouseover="change(5,'5-on.jpg');" onclick="click('5');" id="5">

<div class="category_index" id="cat-5" style="display: none;">
   Hello! 5
</div>
<div class="category_index" id="cat-6" style="display: none;">
   Hello! 6
</div>
<div class="category_index" id="cat-7" style="display: none;">
   Hello! 7
</div>
<div class="category_index" id="cat-8" style="display: none;">
   Hello! 8
</div>

В фф код работает прекрасно, в ие и опере не срабатывает onclick, почему?

Sweet 16.10.2010 00:36

Потому что не нужно называть функции "click".
А еще, id не должно начинаться с цифры или быть ею.

Sweet 16.10.2010 00:47

И еще, цикл - не самое элегантное решение. Можно же, например, сделать переменную, в которой хранится предыдущее значение. И то симпатишнее:
<div onclick="clicking(5);">Show "Hello"</div>
<div onclick="clicking(6);">Show "Bye"</div>

<div id="cat-5" style="display: none;">
   Hello!
</div>
<div id="cat-6" style="display: none;">
   Bye!
</div>
<script>
function clicking(id){
  if (clicking.lastValue) document.getElementById('cat-'+clicking.lastValue).style.display = 'none';
  document.getElementById('cat-'+id).style.display = 'block';
  clicking.lastValue = id;
};
clicking.lastValue = null;
</script>

[MI_nor] 16.10.2010 00:52

немного исправил...
function clicking(id){
    for (i=5;i<9;i++){
        if ('c-'+i==id){
            document.getElementById('cat-'+i).style.display = 'block';
        } else {
                document.getElementById('cat-'+i).style.display = 'none';
            }
    }
}

<img alt="Напольные вазы" src="" class="catimg" onmouseout="change('c-5','/5.jpg');" onmouseover="change('c-5','/5-on.jpg');" onclick="clicking('c-5');" id="c-5">

Результат тот-же.
З.Ы по вашему варианту тоже самое, но спасибо, учту =)
З.Ы.Ы прошу прощения, на винде заработало на лине у меня почему-то нет =)

НатальяВ 24.01.2012 23:53

почти та же проблема
 
в IE не работает вместе onClick и onmouseover на странице
http://litka-2000.narod.ru//tai/tai.html
Подскажите, пожалуйста, как исправить.


Часовой пояс GMT +3, время: 14:41.