我想运行for循环,但我不希望它一次执行。
for(var i = 0; i < array1.length;i++){
var tempArray[];
var tempArrayRevised = [];
confirm("Click the page twice!");
//This is where I want the code to pause until the webpage has been clicked on twice
for(var i = 0; i < 2; i++){
tempArrayRevised.push(tempArray[i+1]);
}
array2.push(tempArrayRevised);
//unhighlight position
}
答案 0 :(得分:0)
runned=false;
window.addEventListener("dblclick", function(){
if(runned==true){
for(var i = 0; i < 2; i++){
tempArrayRevised.push(tempArray[i+1]); }
array2.push(tempArrayRevised);}}
for(var i = 0; i < array1.length;i++){
var tempArray[];
var tempArrayRevised = [];
confirm("Click the page twice!");
runned=true;
}
这样的东西?
答案 1 :(得分:0)
它会是这样的:
for (var i = 0; i < array1.length; i++) {
var tempArray[];
var tempArrayRevised = [];
var pageClickCount = 0;
if (confirm("Click the page twice!")) {
document.body.addEventListener('click', function() {
pageClickCount += 1;
execRest();
});
document.body.addEventListener('dblclick', function() {
pageClickCount += 2;
execRest();
});
}
function execRest() {
if (pageClickCount >= 2) {
for (var i = 0; i < 2; i++) {
tempArrayRevised.push(tempArray[i + 1]);
}
array2.push(tempArrayRevised);
//unhighlight position
}
}
}
答案 2 :(得分:0)
我不完全确定你为什么这样做,但根据提供的信息,这里有几行代码:
变量loopCount不是必需的,但是我把它放在那里,以便你可以参考它来创建你正在创建的这个过程中发生的其他逻辑。显然,您可以在循环中使用局部i var进行简单的增量检查。
'break'语句是此处的关键组件,代码主要用于演示。
小提琴:https://jsfiddle.net/jbird/2zza826j/
在浏览器控制台中,您将看到每个click事件的消息,最后,当循环在'resume'函数中完成时,您将看到整数4,这显然是数组的长度。
哦,我不建议直接在窗口上绑定用户发起的事件。
var clickTarget = document.querySelectorAll('.click-target')[0],
loopCount = 0,
clickCount = 0,
thingArray = ['thing1', 'thing2', 'thing3', 'thing4'],
thingDoneArray = [];
function start() {
for (var i = 0; i < thingArray.length; i++) {
loopCount += 1;
thingDoneArray.push(thingArray[i])
if(loopCount == 2) {
// Bind your click event
clickTarget.addEventListener('click', onClick);
// Alert the user
alert('Click the page twice...for some reason.');
// Break out of the loop (this is the important part)
break;
}
}
}
function resume() {
for(var i = 0; i < thingArray.length - thingDoneArray.length; i++) {
loopCount += 1;
}
console.log(loopCount);
}
function onClick(evt) {
evt.preventDefault();
clickCount += 1;
console.log('1 click event happened.');
if(clickCount == 2) {
clickTarget.removeEventListener('click', onClick);
resume();
}
}
start();