Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 jQuery—单击文件输入的父级并触发文件输入的click事件后,返回';太多的递归';_Javascript_Jquery_Triggers_Click - Fatal编程技术网

Javascript jQuery—单击文件输入的父级并触发文件输入的click事件后,返回';太多的递归';

Javascript jQuery—单击文件输入的父级并触发文件输入的click事件后,返回';太多的递归';,javascript,jquery,triggers,click,Javascript,Jquery,Triggers,Click,我的jQuery中有这样的内容: $(document).on('click', '.upload-wrap', function(event) { $('[name="uploads[]"]').trigger('click'); }); 但它返回“太多递归”错误!但是,它不适用于我的其他元素,如: $(document).on('click', '.upload-image-wrap', function(event) { $(this).next('[name="imag

我的jQuery中有这样的内容:

$(document).on('click', '.upload-wrap', function(event)
{
    $('[name="uploads[]"]').trigger('click');
});
但它返回“太多递归”错误!但是,它不适用于我的其他元素,如:

$(document).on('click', '.upload-image-wrap', function(event)
{
    $(this).next('[name="image"]').trigger('click');

});
我已使用setTimeout来修复此问题:

$(document).on('click', '.upload-wrap', function(event)
{
    setTimeout(function() {
        $('[name="uploads[]"]').trigger('click');
    }, 0);
});
但现在firefox在页面顶部显示了“firefox阻止该网站打开99999999弹出窗口”,其中9999999正在以毫秒的速度增长

我怎样才能修好它


谢谢

如果
.upload image wrap
具有
'[name=“uploads[]”属性
,您可以使用
not()
排除
'[name=“uploads[]”属性
触发委派事件:

$(document).on('click', '.upload-wrap:not([name="uploads[]"])', () => {
  $('[name="uploads[]"]').trigger('click');
});
另一个选项是检查事件是否由人触发:

$(document).on('click', '.upload-wrap', (e) => {
  if (e.originalEvent !== undefined) $('[name="uploads[]"]').trigger('click');
});

宾果:)您能告诉我什么是委托事件吗?您的侦听器已绑定到文档,您可以从$(文档)中看到。在上,但它仅在单击特定类型的子对象时触发。这与标准事件侦听器相比,标准事件侦听器绑定到元素时,在该元素本身触发事件时运行。例如
$('upload-wrap')。在('click')上,…
会将侦听器添加到每个
upload-wrap
,而不是添加到
文档中。