日期:2014-05-16  浏览次数:20331 次

jquery的自定义方法
1.普通对象
o=new Object;
o.a=function(){alert(1)}
o.a()   //输出1

2.jquery对象
html结构:
<p>1</p>
<p>2</p>

jquery代码:
$('p').aa=function(){  //$是jquery的标识
alert(1)
}
$('p').aa()  //TypeError: $('p').aa is not a function

$('p')和o都是一个对象实例,为什么$('p')不能自定义函数呢?

------解决方案--------------------
$("p")返回的是一群组对象。
$('p').aa你这是给jquery添加方法,但没自己定义方法直接调用当然出错!不能简单理解$("p")=new Object
------解决方案--------------------
要想扩展jquery的方法使用

$.fn.extend({
    aa: function () {
        alert(1);
        return this;
    }
    ,aa1: function () {
        return this;
    }
    ,aa2: function () {
        return this;
    }
});

以上你说的是因为对象不一样。
------解决方案--------------------
LZ写错了吧,你得先用变量存放$('p'),要不每次获取的都是新的jquery对象
var pNodes = $('p');
pNodes.aa = function(){
  //dosth
}

pNodes.aa();

如果你想扩展jquery方法就用3楼的办法