这段代码会无限循环吗?

2017-03-01 12:31:56 +08:00
 MinonHeart
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>

<h1>Test</h1>
<p>点击这个试一下</p>

<script>
    var h = document.querySelector('h1');
    var p = document.querySelector('p');
    
    h.addEventListener('click', function () {
        console.log('h1');
    });
    
    p.addEventListener('click', function () {
        console.info('clicked');
        p.click();
        p.click();
        p.click();
        p.click();
        h.click();
    });
    
    p.click();
</script>

</body>
</html>

打开页面的时候会无限循环吗? 手动点一下 p 标签会无限循环吗?

2430 次点击
所在节点    JavaScript
3 条回复
xialdj
2017-03-01 12:45:30 +08:00
这么简单的代码 你运行试试看就知道了啊
xingo
2017-03-01 12:53:05 +08:00
不会,但是 setTimeout(()=>{ p.click() },0) 会哦
aogg
2017-03-01 15:59:00 +08:00
不会,递归触发事件貌似有最大次数限制

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX