0

我有 HTML:

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

和 jQuery/JavaScript:

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

基本上,当单击具有类的跨度时,.js-upload也应单击文件输入。但是当我使用.find()or时.js-uploader > input[type="file"],它会导致 RangeError。

4

2 回答 2

4

控制台消息:too much recursion

当您单击输入时,它也会冒泡跨越,但跨度单击处理程序也会导致单击输入

尝试检查 event.target 是否输入

$('.js-uploader').click(function(e){
     if ($(e.target).is('input[type="file"]')) return;
     $(this).find('input[type="file"]').click();
});
于 2012-07-25T06:13:55.000 回答
0

重递归..在这里检查小提琴..你会知道http://jsfiddle.net/umBWV/1/

于 2012-07-25T06:16:02.590 回答