Выполнение 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, время: 04:18. |