使用jquery选择器回调问题上传Ajax

时间:2011-01-28 09:38:26

标签: javascript jquery ajax upload callback

好的伙计,

基本上我需要更改输入的值(在这种情况下是上传按钮)在上传开始后完成等等,你可以在我的代码中看到。问题是在页面上可能存在许多这些字段(在其用途的上下文中有意义),所以我必须使用$(this)所以只有点击的元素(例如#up)才能获得调用回来改变。我似乎无法弄清楚这一点。

非常感谢帮助。

我正在使用此插件http://valums.com/ajax-upload/来执行此操作并继承我的代码:

new AjaxUpload('#up', {
    name:'uploadedfile', 
    action: 'image-upload.php', 
    onSubmit: function(file, extension) {
        $(this).val("uploading...");    
    },

    onComplete: function(file, response){

        $(this).val(response).removeClass('unactive');

        }


    });

谢谢!

1 个答案:

答案 0 :(得分:0)

解决方法:

var up = $("#up");
new AjaxUpload(up, {
   ...
   onSubmit: function(file, ext) {
       up.val("uploading...");
   }, 
   ...
});

使用作用域和闭包的工作方式,您可以查找up的链。这也会缓存你的选择器。

这种事情是that = thisself = this

的常见做法