Если вы не можете контролировать нагрузку AJAX, это может быть для вас решением проблемы.
Используйте событие DOMSubtreeModified
, которое позволит любому методу, клику или когда-либо добавлять (или удалять) контент, и он будет обнаружен.
(function(doc,found) {
window.addEventListener('DOMSubtreeModified', function() {
var yourdiv = doc.querySelector("#yourdiv");
if(found && !yourdiv){
// Was there but is gone, do something
found = false;
}
if(yourdiv){
// Found it, do something
found = true;
}
}, false);
})(document,false);
Работает так, когда содержимое вставлено (или удалено), событие загорается и проверяет ваш конкретный div.
Он также имеет преимущества от того, что он не вызывается каждые nn второй, как таймер, и не обрабатывается при каждом нажатии, только когда DOM изменен.
Как прокомментировал @metarmask, DOMSubtreeModified
является устаревшим, но все еще имеет лучший кросс охват браузеров, чем новее MutationObserver
.
Эквивалентный образец, используя новый метод будет
(function(doc,found) {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var yourdiv = doc.querySelector("#yourdiv");
if(found && !yourdiv){
// Was there but is gone, do something
found = false;
}
if(yourdiv){
// Found it, do something
found = true;
}
});
});
observer.observe(doc, { childList: true, subtree: true });
})(document,false);
Да, но дело в том, что я никогда не знаю точно, после чего количество кликов появляется. – agis
вы можете попробовать setInterval –
как именно я могу это использовать? – agis