Javascript Prototype .visible () метод не работает в Internet Explorer - PullRequest
1 голос
/ 06 августа 2010

Я использую библиотеку javascript Prototype (и script.aculo.us) - поскольку она поставляется с Rails "как стандарт" - и у меня проблема со следующим фрагментом:

function show_hide_selects()
{
  chkbox = document.getElementById('game_random_select')
  seldiv = document.getElementById('card_selects')

  if (chkbox.checked && seldiv.visible())
  {
    Effect.BlindUp('card_selects', {duration: 0.5})
    Effect.BlindDown('random_options', {duration: 0.5})
  }
  else if (!chkbox.checked && !seldiv.visible())
  {
    Effect.BlindUp('random_options', {duration: 0.5})
    Effect.BlindDown('card_selects', {duration: 0.75})
  }
}

Этоsnippet запускается onClick для флажка 'game_random_select', который контролирует, хочет ли пользователь указать список имен карт или покинуть сервер, чтобы сделать случайный выбор.Он должен скрывать нерелевантный набор элементов формы и показывать соответствующий набор.

Это отлично работает в FireFox, но не работает в Internet Explorer (проверено IE 8).Он выдает ошибку «Объект не поддерживает это свойство или метод» в одной из строк if-test;использование отладчика JS показывает, что seldiv.visible() не работает.

Как я могу определить видимость элемента в IE - конечно, Prototype должен быть полностью совместим с IE?Или я никогда не смогу управлять им с помощью Prototype и должен переключиться на jQuery - который, очевидно, будет усилием, так как мне нужно будет заставить Rails также соответствовать.

Ответы [ 2 ]

2 голосов
/ 06 августа 2010

Ха.Сортировал это сам, благодаря прочтению документации API и обнаружению того, чего я не делал.

seldiv.visible() не работает, но $('card_selects').visible() делает.

0 голосов
/ 06 августа 2010

Вы можете попробовать getStyle http://www.prototypejs.org/api/element/getStyle,, он вернет null, если элемент имеет display свойство none.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...