修改或扩展jQuery原生方法的代码实例

修改或者扩展jQuery的方法代码实例:

毫无疑问,jQuery是一款功能强大且使用方便的类库。

从它的广泛应用可以证实上面的观点,但是正所谓人无完人,金无足赤,jQuery也是如此,并非在任何时候或者场合都能够完美的完成我们的任务,所以有事以后就需要对jQuery原有的方法进行扩展修改,但是最好方法仍然具有原来的功能

代码实例:

代码如下:
<Meta charset=" utf-8"> 编程之家

上面的代码毫无疑问是对jQuery的val()方法做的扩展,下面介绍一下它的实现过程。

代码注释:

1.$.prototype.val = function (base) {}(($.prototype.val),修改jQuery原来的val()方法,这里采用闭包的方式,传递的参数是原来的val()方法,以保持原来val()方法功能。 2.return function (){},返回一个函数对象。 3.var s = this,将this的指向引用赋值给变量s,这里的this是指向jQuery对象实例的。 4.var a = "data-property",声明一个变量并赋值,关于它的更多内容面会介绍。 5.var p = s.attr(a),其实data-property就是标签上的一个自定义属性,那么这段代码就是获取属性值。 6.var isset = arguments.length > 0,判断修改后的val()方法是否传递了参数。 7.var v = isset ? arguments[0] : null,如果传递参数,那么久获取第一个参数,其他的忽略。 8.if (isset&&typeof(base)=="function") { base.call(s,v); },如果传递了参数,且base参数是一个函数,那么就调用base函数设置元素

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...