0

我将此插件代码用于我在网上找到的 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)

4

1 回答 1

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 代理功能的信息。

于 2012-08-18T21:40:21.150 回答