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');
});
});
多次点击#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');
});
});