Я использую библиотеку JavaScript Prototype (и script.aculo.us) - поскольку это то, что поставляется с Rails «как стандарт» - и имеет проблему со следующим фрагмент кода:Javascript Prototype .visible() метод, не работающий в Internet Explorer
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})
}
}
Этот фрагмент кода обжигают onClick
для «game_random_select» флажок, который управляет хочет ли пользователь указать список карт-имен, или оставить на сервере, чтобы сделать случайный выбор. Он должен скрывать нерелевантный набор элементов формы и показывать соответствующий набор.
Это прекрасно работает в FireFox, но не работает в Internet Explorer (проверен IE 8). Он выдает ошибку «Объект не поддерживает это свойство или метод» на одной из строк if-test; использование JS-отладчика указывает, что это seldiv.visible()
, что не работает.
Как определить видимость элемента в IE - возможно, Prototype должен полностью совместим с IE? Или я никогда не смогу справиться с прототипом, и я должен переключиться на jQuery, что, очевидно, будет «Усилиями», так как мне нужно будет также управлять Rails.
Вы также можете показать HTML? –