пример:
function goToElement(elemId){
let element = window.getElementById(elemId);
element.scrollIntoView({behavior: "smooth"});
}
Я испытал ту же ошибку при использовании tr в таблицах. Я провел небольшое расследование, используя инструмент отладки скриптов IE8.
Сначала я попытался использовать переключатель:
$(classname).toggle();
Это работает в FF, но не в IE8.
Затем я попробовал следующее:
if($(classname).is(":visible"))//IE8 always evaluates to true.
$(classname).hide();
else
$(classname).show();
Когда я отлаживал этот код, jquery всегда думал, что он виден. Так что он закроет его, но никогда не откроет обратно.
Затем я изменил его на это:
var elem = $(classname)[0];
if(elem.style.display == 'none')
$(classname).show();
else
{
$(classname).hide();
}
Это сработало. jQuery содержит ошибку или, может быть, мой html немного странный. В любом случае, это устранило мою проблему.
Удалите точку из
. Синтаксис для выбора класса jQuery заключается в добавлении точки перед ним, но она вам не нужна в вашем HTML-коде. строки
$(document).ready(function() {
$(".readOnlyRow").hide();
$("#readOnlyRowsToggle").click(function() {
$(".readOnlyRow").toggle($('.readOnlyRow').css('display') == 'none');
});
});
Есть ошибка jQuery, из-за которой IE8 заставляет все оценивать как истину. Попробуйте выше
Just encountered this myself -- the easiest solution I've found is to check for:
:not(:hidden)
instead of
:visible
then act accordingly . .
Я обнаружил, что, хотя это не работает в IE8
$ ('. TableRowToToggle'). Toggle ();
, но это работает:
$ ('. tableRowToToggle '). each (function () {this.toggle ()});
Понял идею из ссылки jAST, размещенной здесь до
Я решил эту проблему, скрыв дочерние элементы элемента TR.
toggleTr($(".toggletr"));
function toggleTr(el) {
$(el).children('td').each(function() {
$(this).toggle();
});
}
Похоже, это нормально для FF3.5 / FF3 / IE8 / IE7 / IE6 / Chrome / Safari.
Обновление до jQuery 1.4 исправляет это, хотя единственным "исправлением" на этой странице, которое сработало для меня, был ответ Dough boy:
$(document).ready(function() {
$(".readOnlyRow").hide();
$("#readOnlyRowsToggle").click(function() {
$(".readOnlyRow").toggle($('.readOnlyRow').css('display') == 'none');
});
});
Я тоже это заметил. Скорее всего, вам придется вместо этого переключать класс на каждом td. Я еще не пробовал это решение, поэтому дайте мне знать!
Для других - это специфично для IE8, а не 6 или 7.
РЕДАКТИРОВАТЬ
Очевидно, вы не пробовали это, о чем свидетельствует -1 , как я только что сделал с хорошими результатами (в моей ситуации).
CSS
tr.hideme td {display: none}
JS
$("#view-advanced").click(function() {
$("tr.hideme td").toggle();
return false;
});