jQuery触发器仅在第一次出现

时间:2015-09-20 12:51:25

标签: javascript jquery jquery-file-upload

多次点击#input会每次上传一个文件。

点击#button依次触发#input只会在第一次上传文件(如果首次点击#input则不会上传)。但是,我会打开文件选择器浏览器,只是不上传文件。

为什么会这样,以及如何更改它以允许多次点击它?

PS。为什么我希望这样做而不只是使用#input?我正在使用jQueryUI Dialog并希望其中一个按钮启动输入。

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>My profile</title>
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript" src="js/jquery-ui.min.js"></script>
        <script type="text/javascript" src="js/jquery.fileupload.js"></script>
        <script type="text/javascript"> 
            $(function(){
                $('#button').click(function(){uploader.trigger('click');});
                var uploader=$('#input').fileupload( {
                    url: 'upload.php',
                    formData: {user_id:50},
                    dataType: 'json',
                    }
                );
            });
        </script>
    </head>
    <body>
        <button id="button">Click</button>
        <input id="input" type="file" name="name">
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

据我所知,首次初始化变量uploader的顺序和click#button事件的注册位置应该会发生变化。

<强>更新

同时,每次点击uploader时启动#button变量都可以解决问题:

$(function(){
            $('#button').click(function(){
                var uploader=$('#input').fileupload( {
                url: 'upload.php',
                formData: {user_id:50},
                dataType: 'json',
                });
                uploader.trigger('click');
             });
        });