Выполнение JS после того как включен checkbox.
Всем привет. С JS не дружу, но надо. Имею скрипт из инета
var textNodes = []; var textNodes_data = []; var i=0; function search_textNodes(b) { b = b.childNodes; for (var c = 0, d = b.length; c < d; c++) { var a = b[c]; if (a.nodeType == 3) { textNodes.push(a); textNodes_data.push(a.data); a.data = "" } else a.hasChildNodes() && search_textNodes(a) } }; его выполнение начинается с открытием страницы. Надо чтобы скрипт начал работать не с открытием страницы, а после включения checkbox. Сheckbox имеет class="envelope__check". Желательно, чтобы ожидание начала работы скрипта, после включение checkbox, было секунды 2. Можно и без ожидания. Надеюсь для спецов это несложно. Всем спасибо. |
III,
если есть сомнение, в какой теме задать свой вопрос, пишите здесь Общие вопросы Javascript |
document.querySelector(".envelope__check").addEventListener('change', (ev) => ev.target.checked && setTimeout(()=>search_textNodes(???), 2000)) ??? - тот элемент, где вам нужно искать текстовые узлы. Вы не сказали, где |
Спасибо за быстрый ответ. Правильно ли я понял, что приведённую вами строку,
надо вставить первой в скрипте и в search_textNodes(???) вместо ??? вписать test, такой id у меня отображается на странице. |
Спасибо за помощь. Ваша строка выводит сразу полностью содержание id test, мне надо чтобы содержимое печаталось, как в моём скрипте. Вот полностью скрипт
var textNodes = []; var textNodes_data = []; var i=0; function search_textNodes(b) { b = b.childNodes; for (var c = 0, d = b.length; c < d; c++) { var a = b[c]; if (a.nodeType == 3) { textNodes.push(a); textNodes_data.push(a.data); a.data = "" } else a.hasChildNodes() && search_textNodes(a) } }; var d = document.getElementById('test'); search_textNodes(d); function str_write() { var a = textNodes_data[i]; if (a) { textNodes[i].data += a.charAt(0); textNodes_data[i] = a.substr(1) } else i++; i < textNodes.length && setTimeout(arguments.callee, 90) }; str_write() |
Всем спасибо. Решение найдено. Тему можно закрыть.
|
Часовой пояс GMT +3, время: 02:54. |