Почему «clearInterval» не работает внутри обработчика событий условного «наведения мыши»? - PullRequest
0 голосов
/ 08 декабря 2018

Я работаю над расширением Chrome.После storage.sync.get (для загрузки пользовательских настроек) мы выполняем функцию, которая устанавливает прослушиватель на «DOMContentLoaded», чтобы подключить «наведенные мышью» прослушиватели на набор узлов.Каждый слушатель "mouseover" сначала запускает setInterval, который вызывает функцию.Эта функция проверяет некоторые элементы для загрузки, когда загруженные элементы -> , она должна очиститьInterval .НО ЭТОГО НЕ, ИНТЕРВАЛЫ ПРОДОЛЖАЮТСЯ Бежать.ПОЧЕМУ?

chrome.storage.sync.get('prefs', (r)=>{callback(r)});

function do_smth(i) {
    null !== document.querySelector('div.some-class') && (clearInterval(s[i]), [statement], [statement])
}

var s = [], callback = function(e) {
    document.addEventListener("DOMContentLoaded", ()=>{
        document.querySelector("#mydiv").childNodes.forEach((r,i)=>{
            r.addEventListener('mouseover', ()=>{s[i] = setInterval(()=>{do_smth(i)}, 10)
            })
        })
    })
}
...