Javascript 从范围内单击隐藏文件输入会导致RangeError

Javascript 从范围内单击隐藏文件输入会导致RangeError,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有HTML: <span class="btn btn-success js-uploader"> <i class="icon-upload icon-white"></i> Upload <input type="file" multiple> </span> 基本上,当单击带有类.js upload的span时,也应该单击文件输入。但是当我使用.find()或.js uploader>输入[type=“file

我有HTML:

<span class="btn btn-success js-uploader">
    <i class="icon-upload icon-white"></i> Upload
    <input type="file" multiple>
</span>

基本上,当单击带有类
.js upload
的span时,也应该单击文件输入。但是当我使用
.find()
.js uploader>输入[type=“file”]
时,它会导致一个范围错误。

控制台消息:
递归太多

当您单击输入时,它也会变为span,但span click handler也会导致单击输入

尝试检查是否输入了event.target

$('.js-uploader').click(function(e){
     if ($(e.target).is('input[type="file"]')) return;
     $(this).find('input[type="file"]').click();
});

控制台消息:
递归太多

当您单击输入时,它也会变为span,但span click handler也会导致单击输入

尝试检查是否输入了event.target

$('.js-uploader').click(function(e){
     if ($(e.target).is('input[type="file"]')) return;
     $(this).find('input[type="file"]').click();
});

重递归。。检查这里的小提琴。您将了解重递归。。检查一下这里的小提琴,你会知道的