IE не будет переключать элемент - PullRequest
2 голосов
/ 28 июля 2010

У меня есть этот JavaScript на моей странице, чтобы переключать div и переключаться между двумя изображениями

<script type="text/javascript">
 function toggleArchiv() {
  document.getElementById('cat').toggle();
  var image = document.getElementById('arrow');
  if (image.src == 'bullet_arrow_down.png')
   {
    image.src = 'bullet_arrow_up.png';
   }
   else
   {
    image.src = 'bullet_arrow_down.png';
   }
  }
</script>

Отлично работает в современных браузерах, но IE постоянно говорит, что в этой строке есть ошибка

document.getElementById('cat').toggle();

Так что он не переключает div и не переключает изображение. Что делать?

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Мне кажется, вы используете библиотеку PrototypeJS. Библиотека будет добавлять методы к элементам DOM, в данном конкретном случае она добавляет HTMLElement.prototype.toggle. Прототипирование DOM поддерживается только в IE8 и более поздних версиях и должно выполняться в стандартном режиме. Чтобы заставить его работать во всех браузерах, используйте метод $() вместо getElementById():

$('cat').toggle();

http://api.prototypejs.org/dom/element/toggle/

1 голос
/ 28 июля 2010

Я думаю, что проблема заключается в вызове toggle () для HTMLElement, а не объекта jQuery. Вы должны использовать селектор jQuery вместо getElementById () следующим образом:

$('#cat').toggle();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...