Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法重复单击彼此_Javascript - Fatal编程技术网

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'
事件时,它启动不会做任何事情

  • 如果元素的点击进度标志设置为true,则中止这些步骤

  • 将元素上的“单击进行中”标志设置为true

  • 如果希望它与
    连续。单击()
    ,则必须先让上一个事件完成。可能使用计时器:

    function f1(){
        console.log('f1 '+new Date());
    
        setTimeout(function () {
            document.getElementById('btn_1').click();
        }, 1);
    }
    
    为什么??
    f1
    函数不重复调用吗

    不可以。当元素已经有一个活动的
    'click'
    事件时,它启动不会做任何事情

  • 如果元素的点击进度标志设置为true,则中止这些步骤

  • 将元素上的“单击进行中”标志设置为true

  • 如果希望它与
    连续。单击()
    ,则必须先让上一个事件完成。可能使用计时器:

    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正在检测无限递归并停止它,但肯定有效。