Javascript 无法重复单击彼此
很难用人类语言解释,只需显示代码:Javascript 无法重复单击彼此,javascript,Javascript,很难用人类语言解释,只需显示代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang='zh-CN' xml:lang='zh-CN' xmlns='http://www.w3.org/1999/xhtml'> <head> <scr
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='zh-CN' xml:lang='zh-CN' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<script type="text/javascript">
function call_f1(){
document.getElementById('f1_div').click();
// document.getElementById('f1_div').click();
}
function f1(){
console.log('f1 '+new Date());
document.getElementById('btn_1').click();
}
</script>
</head>
<body>
<input id="btn_1" type="button" onclick="call_f1()" value="callf1"></input>
<div id="f1_div" onclick="f1()" style="background: red; width: 35px; height: 35px;">
</div>
</body>
函数调用_f1(){
document.getElementById('f1_div')。单击();
//document.getElementById('f1_div')。单击();
}
函数f1(){
console.log('f1'+新日期());
document.getElementById('btn_1')。单击();
}
当您使用鼠标单击按钮时,您将在控制台上获得单个输出。为什么?f1
函数不重复调用吗?尝试使用:
function call_f1(){
document.getElementById('f1_div').onclick();
// document.getElementById('f1_div').onclick();
}
function f1(){
console.log('f1 '+new Date());
document.getElementById('btn_1').onclick();
}
这一款适合我:试试:
function call_f1(){
document.getElementById('f1_div').onclick();
// document.getElementById('f1_div').onclick();
}
function f1(){
console.log('f1 '+new Date());
document.getElementById('btn_1').onclick();
}
这个对我有用:
为什么??f1
函数不重复调用吗
不可以。当元素已经有一个活动的'click'
事件时,它启动不会做任何事情
连续。单击()
,则必须先让上一个事件完成。可能使用计时器:
function f1(){
console.log('f1 '+new Date());
setTimeout(function () {
document.getElementById('btn_1').click();
}, 1);
}
为什么??f1
函数不重复调用吗
不可以。当元素已经有一个活动的'click'
事件时,它启动不会做任何事情
连续。单击()
,则必须先让上一个事件完成。可能使用计时器:
function f1(){
console.log('f1 '+new Date());
setTimeout(function () {
document.getElementById('btn_1').click();
}, 1);
}
因此,将timeout添加到两个函数调用中。如下
var timeout = 0; // change this to whatever suites for you
function call_f1(){
setTimeout(function(){
document.getElementById('f1_div').click();
}, timeout);
// document.getElementById('f1_div').click();
}
function f1(){
console.log('f1 '+new Date());
setTimeout(function() {
document.getElementById('btn_1').click();
}, timeout);
}
因此,将timeout添加到两个函数调用中。如下
var timeout = 0; // change this to whatever suites for you
function call_f1(){
setTimeout(function(){
document.getElementById('f1_div').click();
}, timeout);
// document.getElementById('f1_div').click();
}
function f1(){
console.log('f1 '+new Date());
setTimeout(function() {
document.getElementById('btn_1').click();
}, timeout);
}
首先,为什么要这样做,其次,如果只想记录日期,为什么不使用循环?您确定div有click()方法吗?您的控制台说明了什么?@Lame-up-duck所有HTML元素都应该具有
click
功能:@StefanoSanfilippo对我不起作用,只向控制台获取一个输出(而不是我期望的重复输出)。您使用的浏览器是什么?@AnthonyGrist:谢谢。首先,为什么要这样做,其次,如果您只想记录日期,为什么不使用循环?您确定div有click()方法吗?您的控制台说明了什么?@Lame-up-duck所有HTML元素都应该具有click
功能:@StefanoSanfilippo对我不起作用,只向控制台获取一个输出(而不是我期望的重复输出)。你在使用什么浏览器?@AnthonyGrist:谢谢。看起来Firefox或JSFIDLE正在检测无限递归并停止它,但肯定有效。看起来Firefox或JSFIDLE正在检测无限递归并停止它,但肯定有效。