Как повторить функцию клика JavaScript - PullRequest
0 голосов
/ 28 июня 2019

долгое время читатель первый раз постер.Я совершенно новичок в этом .. Как мне сделать "ele.click ();"повторять более одного раза, поэтому вместо того, чтобы выстрелить один раз, он будет запускать, скажем, 5 раз подряд одним нажатием кнопки "Z" .. как ZZZZ Z. Заранее спасибо

(function(tags) {
    tags = ["INPUT", "SELECT", "TEXTAREA"];
    addEventListener("keydown", function(ev, ele) {
        if (ev.shiftKey || ev.ctrlKey || ev.altKey || tags.includes(ev.target.tagName)) return;
        switch (ev.key.toUpperCase()) {
            case "Z": // test
                if (ele = document.querySelector(".CLASS")) ele.click();
                break;
        }
    });
})();

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Я не вижу его реальной пользы, но я вижу это так:

Позвоните по клику, указав в качестве параметра желаемое количество звонков, например: "ele.click (5);"

Затем в своей функции вы делаете что-то вроде:

nameFunction(times) {
    let done = 0;
    while(times > done) {
        done++;
        // do your logic
    }
}
0 голосов
/ 28 июня 2019

Вы можете создать внешнюю функцию, которая принимает элемент в качестве параметра. Тогда вы можете зацикливаться 5 раз каждый раз, вызывая element.click

function clickNtimes(element, n) {
 for (var i=0; i<n; i++) {
  element.click();
 }
}

Затем вы можете вызвать эту функцию в своем коде как:

(function(tags) {
    tags = ["INPUT", "SELECT", "TEXTAREA"];
    addEventListener("keydown", function(ev, ele) {
        if (ev.shiftKey || ev.ctrlKey || ev.altKey || tags.includes(ev.target.tagName)) return;
        switch (ev.key.toUpperCase()) {
            case "Z": // test
                if (ele = document.querySelector(".CLASS")) clickNtimes(ele,5);
                break;
        }
    });
})();

Если вы хотите добавить задержку между щелчками, вы можете использовать setInterval ().

function clickNtimes(element, n) {
  let index = 0;
  function click() {
    element.click();
    index++;
    if (index === n) {
      clearInterval(this);
    }
  }
  const clickInterval = setInterval(click, 1000);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...