继续;
用惯jquery的用户可能习惯于连写行为,也就是说在调用一个方法之后,紧跟着调用另一个方法,如此连写不断,形成一个珍珠链,而且编写灵活,方便,例如:
$(this).test().hide().height();
要实现类似的连写行为,就应该在每个插件方法中,返回一个jquery对象,除非方法需要明确返回值。返回的jquery对象通常就是this所引用的对象。如果使用each()方法迭代this,则可以直接返回迭代的结果。针对上一节的示例,进一步修改
jQuery.fn.test = function(){ return this.each(function(){ //遍历匹配的元素,此处的this表示对象集合 alert(this.nodeName); //提示当前jquery对象的dom节点名称 }) }
然后,我们就可以在应用示例中连写行为了,例如,在下面的示例中,先弹出提示节点的名称的信息,然后使用当前节点名称改写当前元素内包含的信息,最后在慢慢隐藏该元素。
$('body *').click(function(){ $(this).test().html(this.nodeName).hide(1000); });