Так что я столкнулся со странной проблемой с jQuery. В основном у меня есть два элемента на странице - div, который загружает фрагмент страницы в дочерний div с помощью .load () (#optionOne в приведенном ниже примере) и другой div со статическим содержимым (#optionTwo). Всякий раз, когда вызывается функция (каждые 10 секунд или около того), она случайным образом выбирает одну или другую для показа () или скрытия (). Вот JavaScript:
var editableOrSocial = Math.floor(Math.random()*2);
if (editableOrSocial == 0) {
$j('#optionTwo').hide();
$j('#optionOne').show();
$j('.thecontent').load('http://www.example.com/ .post-content', function() { });
}
else {
console.log('else called!');
$j('#optionOne').hide();
$j('#optionTwo').show();
}
Теперь это работает отлично, если я удаляю .load (). Он будет переключаться вперед и назад, показывать и скрывать каждый div соответствующим образом. Однако, как только я добавляю .load (), он «застревает» в этой опции. Даже если вызывается else, он на самом деле не показывает и не скрывает ни один div (отсюда и небольшое отладочное сообщение «else вызвано!» ... Я хотел убедиться, что оно работает).
Кто-нибудь сталкивался с этой проблемой раньше? Является ли .load () как-то переопределяющим? Я в замешательстве.
РЕДАКТИРОВАТЬ: Неважно, просто понял это сразу после того, как я опубликовал это. Изменение этого:
$j('.thecontent').load('http://www.example.com/ .post-content', function() { });
к этому
$j('#optionOne .thecontent').load('http://www.example.com/ .post-content', function() { });
исправил это. Однако мне все равно было бы интересно понять, почему это произошло. Я предполагаю, что это может быть связано с загрузкой, вызывающей состояние отображения?