这里有什么问题?(除了冗余代码).$.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);
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);