jquery插件学习二

首页 > 网络编程 > JavaScript > javascript类库 > jquery 更新日期: 2016-04-10
除了全局函数外,jquery中的大多数插件都是通过jquery对象的方法提供的
创建全局函数只需通过为jquery对象添加属性即可,而创建jquery对象的方法也可以通过为jquery.fn添加属性来实现,实际上jquery.fn对象就是jquery.prototype原型对象的别名,使用别名更方便引用。
demo:
代码如下:

jQuery.fn.test = function(){
alert('这是 jquery 对象方法 ');
}

然后,就可以在任何jquery对象中调用该方法了。
代码如下:

$(function(){
$('h1').click(function(){
$(this).test();
});
});

由于这里,并没有任何地方匹配dom节点,所以编写全局函数也是可以的(上一节有讲过哦),但是,在使用jquery对象方法时,函数体内的this关键字总是引用当前的jquery对象,因此我们可以对上面的方法进行重写,实现动态提示信息,代码如下:
代码如下:

jQuery.fn.test = function(){
alert(this[0].nodeName); //提示当前jquery对象的dom节点名称
}

重点来了,在上面的示例中,可以看到由于jquery选择器返回的是一个数组类型的dom节点集合,this指针就指向当前这个集合,故要显示当前元素的节点名称,就必须在this指针后面指定当前元素的序号。
思考: 如果jquery选择器匹配多个元素,我们该如何准确指定当前元素的对象呢?-----
要解决这个问题,我们不妨在当前jquery对象方法的环境中调用each()方法,通过隐式迭代的方式,让this指针依次饮用每一个匹配的dom元素对象,例如,针对上一个示例做进一步的修改
代码如下:

jQuery.fn.test = function(){
this.each(function(){ //遍历匹配的元素,此处的this表示对象集合
alert(this.nodeName); //提示当前jquery对象的dom节点名称(注意这里与上面的变化哦,下标消失了)
});
}

然后,在调用方法时,就不用担心,jquery选择器所匹配的元素有多少了。例如在下面的例子中,当单击不同的元素,会提示当前的节点名称
代码如下:

$(function(){
$('body *').click(function(){
$(this).test();
});
});

代码如下:

<h1>ceshi</h1>
<a>dddddddddd</a>
<input type="button" value="test"/>
<div>div元素</div>

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • jquery插件学习四
    如果你明白了前面讲的使用jquery.fn对象属性的方法创建jquery对象的方法,那么使用extend方法创建jquery对象就比较容易理解了.理解了吗,一定要仔细揣摩,仔细研究.我也是再慢慢的学习,慢慢的领悟针对上面的示例,我们可以调用jquery.fn.extend()方法来创建jquery对象方法.具体代码如下> 代码如下: jQuery.fn ...
  • jquery插件学习三
    用惯jquery的用户可能习惯于连写行为,也就是说在调用一个方法之后,紧跟着调用另一个方法,如此连写不断,形成一个珍珠链,而且编写灵活,方便例如: 代码如下: $(this).test().hide().height(); 要实现类似的连写行为,就应该在每个插件方法中,返回一个jquery对象,除非方法需要明确返回值.返回的jquery对象通常就是this所 ...
  • 轻松学习jQuery插件EasyUIEasyUI创建树形菜单
    轻松学习jQuery插件EasyUIEasyUI创建树形菜单
    这篇文章主要帮助大家轻松学习jQuery插件EasyUI,EasyUI创建树形菜单,内容很丰富,值得大家阅读.一.EasyUI使用标记创建树形菜单一个树形菜单(Tree)可以从标记创建.easyui 树形菜单(Tree)也可以定义在 <ul> 元素中.无序列表的 <ul> 元素提供一个基础的树(Tree)结构.每一个 <li&g ...
  • 轻松学习jQuery插件EasyUIEasyUI表单验证
    轻松学习jQuery插件EasyUIEasyUI表单验证
    轻松学习jQuery插件EasyUI,本文的重点在于EasyUI表单验证,并告诉大家如何提交表单,感兴趣的小伙伴们可以参考一下一.EasyUI创建异步提交表单本文向您展示如何通过 easyui 提交一个表单(Form).我们创建一个带有 name.email 和 phone 字段的表单.通过使用 easyui 表单(form)插件来改变表单(form)为 a ...
  • 快速学习jQuery插件Form表单插件使用方法
    快速学习jQuery插件中的Form表单插件使用方法,可以非常容易地.无侵入地升级HTML表单以支持Ajax,感兴趣的小伙伴们可以参考一下jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从 ...
猜你喜欢