当前位置:  开发笔记 > 编程语言 > 正文

jQuery.fn - 为什么这不起作用?

如何解决《jQuery.fn-为什么这不起作用?》经验,为你挑选了1个好方法。

这里有什么问题?(除了冗余代码).$.getJSON按预期工作.但是$.postJSON不起作用.我可以$.fn通过firebug 进行检查,确定列出了postJSON.但是,如果我尝试调用它,我会得到一个无函数定义的错误.

jQuery.fn.getJSON = function(path, opts){
  this.extend(opts, {
    url: path,
    dataType: 'json',
    type: 'GET'
  });

  var invalid = opts.error;
  opts.error = function(xhr, status){
    var data = $.httpData(xhr, 'json');
    if (invalid) 
      invalid(data);
  }

  this.ajax(opts);
};

jQuery.fn.postJSON = function(path, data, opts) {
  this.extend(opts, {
    url: path,
    data: data,
    dataType: 'json',
    type: 'POST'
  });

  var invalid = opts.error;
  opts.error = function(xhr, status){
    var data = $.httpData(xhr, 'json');
    if (invalid) 
      invalid(data);
  }

  this.ajax(opts);
};

meder omural.. 5

jQuery.fn是对jQuery对象原型的引用,所有jQuery构造对象都可以访问它,因此该函数变为jQuery.prototype.postJSON.如果要将其声明为静态方法,则不应指定".fn"

jQuery.fn.postJSON = function(){};

alert(typeof jQuery.prototype.postJSON ); // function
alert(typeof jQuery.postJSON); // undefined

jQuery.getJSON是一个'函数'的原因是因为它是jQuery对象的本机方法(它不是你要声明的东西,它是jQuery.prototype.getJSON);



1> meder omural..:

jQuery.fn是对jQuery对象原型的引用,所有jQuery构造对象都可以访问它,因此该函数变为jQuery.prototype.postJSON.如果要将其声明为静态方法,则不应指定".fn"

jQuery.fn.postJSON = function(){};

alert(typeof jQuery.prototype.postJSON ); // function
alert(typeof jQuery.postJSON); // undefined

jQuery.getJSON是一个'函数'的原因是因为它是jQuery对象的本机方法(它不是你要声明的东西,它是jQuery.prototype.getJSON);

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有