jquery更改此.post插件,以便能够在回调中使用$(this)

时间:2012-08-18 21:37:18

标签: jquery ajax plugins this .post

我将这个插件代码用于我在网上找到的ajax调用

jQuery.fn.postAjax = function(success_callback) {
  this.submit(function(e) {
    e.preventDefault();
    $.post(this.action, $(this).serialize(), success_callback);
    return false;
  })
  return this;
};

我改变了一点,所以我可以更好地使用它,其用法就像

$("#my_form_name").postAjax(function(data){
   //code here
});

此代码的唯一问题是我无法在回调中使用$(this),这是一个问题......

我怎么能改变这个插件才能使用$(this)

1 个答案:

答案 0 :(得分:2)

试试这个:

jQuery.fn.postAjax = function(success_callback) {
    this.submit(function(e) {
        e.preventDefault();
        $.post(this.action, $(this).serialize(), $.proxy(success_callback, this));
        return false;
    })
    return this;
};​

了解jQuery proxy功能。