我正在将AjaxUpload插件与jQuery一起使用,并且大多数情况下一切正常,但是我必须单击两次按钮才能执行它。我猜这是一个范围问题...或(?)还在学习...
这是我的代码:
$(".upload-button").live("click", function(event) {
event.preventDefault();
var currentId = $(this).closest("div").attr("id").replace("slide-", "");
new AjaxUpload($(this), {
action: "./php/upload.php",
name: 'userfile',
autoSubmit: true,
onSubmit: function(file , ext) {
},
onComplete: function(file, response) {
// enable upload button
// this.enable();
$("#slide-" + currentId).find(".movie-image").attr("src", baseImgPath + file);
$("#mImg" + currentId).val(file);
}
});
任何想法表示赞赏。 :)
最佳答案
知道了-对于其他可能遇到类似问题的人来说,这就是方法...
主要问题是这些按钮是动态创建的,并且AjaxUpload最初不会绑定到.live()调用中,因此是“单击,移动,再次单击,触发”。
通过在创建按钮时在我的循环中调用AjaxUpload(包装在其自己的函数中,如下所示),它们就被初始绑定并正常工作。
循环中使用的行:
makeUpButton(("#upload-button-" + slideCount), slideCount);
AjaxUpload调用:
function makeUpButton(theButton, theId) {
new AjaxUpload(theButton, {
action: "./php/upload.php",
name: 'userfile',
autoSubmit: true,
onSubmit: function(file , ext) {
this.disable();
},
onComplete: function(file, response) {
this.enable();
$("#slide-" + theId).find(".movie-image").attr("src", baseImgPath + file);
$("#mImg" + theId).val(file);
}
});
}
希望这对某人有帮助,我知道这几天让我发疯。 ;)
干杯。