Это перефразированный вопрос из здесь . После некоторого тестирования я выделил проблему, но понятия не имею, как ее исправить. Нет необходимости читать предыдущий вопрос, это упрощенный код:
ПРОБЛЕМА -> trigger('click')
выполняется, но событие не срабатывает, когда внутри зацикливается (пересекается) функция
$(document.ready(function(){
var checkForConfirmation = function(){
clearInterval(checkInterval);
$("#anchorLink").trigger('click');
}
var checkInterval = setInterval(function(){checkForConfirmation()}, 5000);
});
Функция вызывается с интервалами. Когда правильный ответ получен, интервал останавливается, и имитирует щелчок по ссылке привязки.
В html-файле есть якорная ссылка <a id="anchorLink" href="#hiddenDiv">Show</a>
.
Это указывает на скрытый div, который имеет некоторый контент. Я использую плагин Fancybox, чтобы показать скрытый div при нажатии на ссылку привязки.
Если я нажму на ссылку Show
, вы увидите fancybox, как и ожидалось.
Если я получаю ответ от серверной части, код выполняется должным образом, но fancybox не отображается.
Если я переместу $("#anchorLink").trigger('click');
за пределы функции checkForConfirmation
, появится fancybox.
Когда я заменяю $("#anchorLink").trigger('click');
на $("#anchorLink").text('Im clicked');
, строка отображается в теге <a id="ancoredLink">
.
Это резюме, я пробовал в разных ситуациях.
Проблема, очевидно, заключается в запуске события click в циклическом режиме. Селектор $("#anchorLink")
доступен, он запускает его корректно отовсюду. Очевидно, что существует проблема при запуске события мыши внутри циклической функции.
Есть предложения?