javascript - 超出最大调用堆栈大小避免出现这种情况

标签 javascript jquery

我读过很多谈论同一件事的主题,但没有一个真正对我有帮助。

这是我的正文代码:

<div class='row'>
    <div class='main'>
        <div class='header'></div>
        <div class='image'>
            Pick image
        </div>
        <div style='clear: both'></div>
    </div>
</div>
<input type="file" id="file">

在 jQuery 中我有(这有效):

$(".image").click(function(){
    $("#file").click();
});

但是,正如预期的那样,这只适用于第一次 .image 点击。如果我克隆.main.image上的点击事件将不再起作用。因此,为了解决这个问题,我需要实现 $(document),这就是我所做的。

$(document).on('click', $(".image"), function(event){
    $("#file").click();
});

虽然这段代码不起作用,但检索错误:

Uncaught RangeError: Maximum call stack size exceeded

谷歌上的一些搜索告诉我在 .click() 之后使用 event.stopPropagation();,但它也不起作用。

最佳答案

尝试这样的事情]

从此更改您的代码

$(".image").click(function(){
    $("#file").click();
});

   $(document).on('click','.image',function(){
        $("#file").click();
    });

关于javascript - 超出最大调用堆栈大小避免出现这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23887377/

相关文章:

javascript - 通过 AJAX 发送 jquery 字符串并使用 PHP 将其保存到 html 文件

javascript - D3 部分仪表板未显示

javascript - 选择 js 自动完成似乎不起作用

javascript - 相当于 Flow 中的 TypeScript Record?

jquery - html 中文本跨度超过 max-width

jquery - 延迟加载插件 (jQuery)

javascript - 主干集合上的 findWhere 仅返回一个结果

javascript - 如何将事件绑定(bind)到附加元素?

javascript - jquery 更改空所需输入的背景颜色

ajax - 我的 AJAX 内容是否已可抓取?