jQuery 触发器仅在第一次发生

jQuery trigger only occurs first time

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

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

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

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

<!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>

据我所知,首先初始化变量 uploader 和在 #button 上注册 click 事件的顺序应该有所不同。

更新

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

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