读书人

jquery的自定义方法,该如何处理

发布时间: 2013-01-17 10:28:54 作者: rapoo

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楼的办法

读书人网 >JavaScript

热点推荐