我的代码中的什么给了我这个错误?< br >
jquery-2.1.3.min.js:3 Uncaught RangeError:超出最大调用堆栈大小
超文本标记语言
<form id="addPhotoForm">
<img class="pull-right" src="" width="100px" height="140px"/>
<input type="file" id="addPhotoInput" name="addPhotoInput" style="display: none;"/>
</form>
JS
//On click Photo
$('#addPhotoForm').on('click', function(){
//Check if usrname exist
var usrname = $('#usrname').val();
if(usrname){
$('#addPhotoInput').trigger('click');
}
else{
alert("!");
}
})
我该如何解决这个错误?< br >单击表单时,我正试图打开文件对话框。
更新我试过:
$('#addPhotoInput').click();
可以将命名空间用于单击事件
$('#addPhotoInput').on('click.input',function(){
// do something
});
//On click Photo
$('#addPhotoForm').on('click.form', function(){
//Check if usrname exist
var usrname = $('#usrname').val();
if(usrname){
$('#addPhotoInput').trigger('click.input');
}
else{
alert("!");
}
})
您已经将< code>click event附加到窗体本身。因此,当单击< code >任何表单元素时,由于< code >事件冒泡,它会再次被表单< code >捕获。因此,它将再次调用窗体上的< code>click事件。同样的过程一次又一次地重复
您可以防止事件传播
$('#addPhotoForm').on('click', function(e){
e.stopPropagation();
// rest of the code goes here
})
编辑:您应该将事件处理程序附加到表单内部的其他元素上,这些元素对于最终用户是可见的,而对于表单是不可见的
为了避免任何使用jQuery绑定的click事件处理程序被触发,并且仍然保持事件传播(如果任何委托click事件也被绑定,这是很有用的),您可以改为调用本机DOM click()
方法:
$('#addPhotoInput')[0].click();
或者:
$('#addPhotoInput').get(0).click();
这与以下内容相同:
document.getElementById('addPhotoInput').click();
当我运行代码时,Node。js抛出由过多递归调用引起的异常。我试图增加Node。js-stack-size-by,但是node。js崩溃,没有任何错误消息。当我在没有sudo的情况下再次运行时,请选择Node。js打印。有没有可能在不删除递归调用的情况下解决这个问题?
尝试设置react路由时出现一些奇怪的错误 这是我的主index.js文件 我得到的错误是 不知道为什么
问题内容: 当我运行我的代码时,Node.js引发由过多的递归调用引起的异常。我试图将Node.js堆栈大小增加,但是Node.js崩溃而没有任何错误消息。当我不使用sudo再次运行此命令时,Node.js将输出。是否有可能在不删除递归调用的情况下解决此问题? 问题答案: 您应该将递归函数调用包装到 , 要么 函数使node.js有机会清除堆栈。如果您不这样做,并且有很多循环没有任何 真正的 异步
问题内容: 我想这意味着有一个循环引用,但是对于我的一生,我无法猜测如何解决它。 有人有主意吗? http://plnkr.co/edit/aNcBcU?p=预览 检查Chrome中的调试控制台(例如),您将看到错误。冒犯的行是 通过以下方式在控制器上对scope.map进行“ $ watched” 问题答案: 这是因为您要比较对象是否相等,而不是参考。将您的声明更改为此:
如果用户未登录,我尝试将用户重定向到“TrapPage”。 这是我的代码: 当我将函数requireAuth放在onEnter上时,控制台给我一个错误: 我是一个反应迟钝的人,请耐心点:) 我的代码有什么问题?
问题内容: 我有一台服务器,可能导致以下输出死亡: 但是,如果没有堆栈转储或跟踪,就无法确定这是无限递归还是只是链太大而已,更不用说问题函数在哪里了。 使用该选项运行Node 不仅使我的测试运行缓慢(正如人们期望的那样),而且没有重现该问题。 有人有任何解决方案或提示来深入了解此问题吗? 问题答案: 看来目前的答案是:站稳脚步,等待Node.js更新到新的V8版本,或者使用此Chromium项目错