长期读者第一次海报。 我对此完全陌生。 如何制作“ ele.click();”重复一次,然后重复一次,因此与其触发一次,不如按一次Z键连续发射5次。 预先谢谢你
(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;
}
});
})();
答案 0 :(得分:-1)
您可以创建一个将元素作为参数的外部函数。然后您每次调用element.click
可以循环5次。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);
}
答案 1 :(得分:-1)
我看不到它的真正用途,但是我这样看:
通过点击传递希望的通话次数作为参数,例如:“ ele.click(5);”
然后,在您的函数中执行以下操作:
nameFunction(times) {
let done = 0;
while(times > done) {
done++;
// do your logic
}
}