其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成。...1.4中可以使用delay()这一功能来实现的方式(这很像是休眠) $(".mydiv").delay(5000).hide('blind', {}, 500); 如何把已创建的元素动态地添加到DOM...如何在jQuery中克隆一个元素: var cloned = $('#somediv').clone(); 在jQuery中如何测试某个元素是否可见 if($(element).is(':visible...')) { //该元素是可见的 } 如何把一个元素放在屏幕的中心位置: jQuery.fn.center = function () { return this.each(function...事件日志: // 允许链式日志记录 jQuery.log = jQuery.fn.log = function (msg) { if (console){ console.log("%s
而jQuery真正主体的部分是在工厂函数中的,在里面实现了所有功能,下面我将工厂函数的函数体按行标记分割成许多小的模块,分割的依据是按照功能块的不同,下面列出我分割好的jQuery简化框架: 1(function...70}) 在行48-144中,定义了一些变量和jQuery函数。...用部分变量储存了数组和对象的一些方法,便于后续调用简化易懂,如var getProto = Object.getPrototypeOf,就是简化获取对象属性的方法,还有var push = arr.push...上面返回的构造函数jQuery.fn.init也可以看成是jQuery.fn的init方法。...可以调用jQuery.fn.init的原型链上的方法,则 1jQuery.fn.init.prototype === jQuery.fn // true 所以在jQuery中,在原型链上绑定了很多方法,
的应该都知道,这是绑定的DOMContentLoaded 事件 }) 当$变量已经存在时,如引用了jQuery,那么zepto的全局对象将不会指向$,但始终指向window.Zepto ? ...接下来说一下$构造器中用到的一些其他函数; 像通过zepto对象调用的方法,都是可以在其他地方通过$(Zepto).zepto[方法名]调用的, 如 $.zepto.qsa(); 而通过$.fn...该方法接收最多三个参数, 第一个为html值,可以只是一个标签,如(“”)、或一个html片段,如(“hello”); 第二个为一个标识符,用来确定标签类型,该变量主要用于对表格类元素进行一些特殊的处理...然后遍历该object,将属性放入dom元素中,那个判断就不多做解释了,因为有一些属性被zepto做成方法了,所以直接调用该方法就可以了,这也是为什么调用$(“”,{text:’显示的值’}),可以通过...(但是jQuery不是这么写的,至少不全是,因为jQuery还有一些自己的伪类,zepto是没有的); 关于那个slice.call()只是为了将里边返回的dom对象放在一个数组里罢了。
如何自动滚动到页面中的某区域 jQuery.fn.autoscroll = function(selector) { $('html,body').animate({scrollTop:$(this.selector...如何在一段时间之后自动隐藏或关闭元素(支持1.4版本): //这是1.3.2中我们使用setTimeout来实现的方式 setTimeout(function() { $('.mydiv').hide...('blind', {}, 500) }, 5000); //而这是在1.4中可以使用delay()这一功能来实现的方式(这很像是休眠) $(".mydiv").delay(5000).hide('blind...如何把一个元素放在屏幕的中心位置: jQuery.fn.center = function() { this.css('position','absolute'); this.css('top',...如何从元素中除去HTML (function($) { $.fn.stripHtml = function() { var regexp = /])
三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000) easing:用来指定切换效果,默认是"swing",可用参数"linear" swing:动画执行时效果是...jq的遍历方式 jq对象.each(callback) 语法: jquery对象.each(function(index,element){}); index:就是元素在集合中的索引 element:就是集合中的每一个元素对象...this:集合中的每一个元素对象 回调函数返回值: true:如果当前function返回为false,则结束循环(break)。...当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2..... 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。...的功能 如何定义插件:(看下面两个案例) $.fn.extend(object) 增强通过Jquery获取的对象的功能 $("#id") ?
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。...= ['#f00', '#0f0', '#00f'][i] }) //为三个不同的p元素单击事件分别设定不同的处理 jQuery中几个自定义的事件: (1)hover(fn1, fn2):一个模仿悬停事件...如检测是否ie:$.browser.isie,是ie浏览器则返回true。 $.each(obj, fn):通用的迭代函数。可用于近似地迭代对象和数组(代替循环)。..." 12、解决自定义方法或其他类库与jQuery的冲突 很多时候我们自己定义了$(id)方法来获取一个元素,或者其他的一些js类库如prototype也都定义了$方法,如果同时把这些内容放在一起就会引起变量方法定义冲突...之后应用 Jquery的时候只要将所有的$换成jQuery即可,如原来引用对象方法$("#msg")改为jQuery("#msg")。
目前页面中常用的一些组件,都有多种jQuery插件可供选择,网络上也有很多专门收集jQuery插件的网站。...我们知道每个jQuery对象都会包含jQuery中定义的DOM操作方法,这里使用$方法来选择a元素,返回一个a元素的jQuery对象,这个对象就可以使用jQuery中定义的DOM操作方法。...可以接受参数的jQuery插件 继续上面的例子,假如我还想为这个插件添加一个设置标签元素内容文字大小的功能,那么我可以这么来实现: (function($){ $.fn.changeStyle...("p").changeStyle({colorStr:"red",fontSize:14}); 把参数放到一个对象中传给插件还有一个好处就是我们可以在插件内部为一些参数定义一些缺省值,例如:...); PS:$.extend方法和$.fn.extend方法都可以用来扩展jQuery功能,通过阅读jQuery源码我们可以发现这两个方法的本质区别,那就是$.extend方法是在jQuery全局对象上扩展方法
* JavaScript框架:本质上就是一些js文件,封装了js的原生代码而已。 2....步骤: 1.下载JQuery 目前jQuery有三个大版本: 1.x:兼容ie678,使用最为广泛的,官方只做BUG维护, 功能不再新增。...体积大一些 2. jquery-xxx.min.js:生产版本。程序中使用,没有缩进。体积小一些。...首元素选择器 * 语法: :first 获得选择的元素中的第一个元素 2. 尾元素选择器 * 语法: :last 获得选择的元素中的最后一个元素 3....插件:增强JQuery的功能 实现方式: 1. $.fn.extend(object) * 增强通过Jquery获取的对象的功能 $("#id")
7、插件丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及ajax上传等。...=['#f00','#0f0','#00f']}) //为三个不同的p元素单击事件分别设定不同的处理 jQuery中几个自定义的事件: (1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象...如检测是否ie:$.browser.isie,是ie浏览器则返回true。 $.each(obj, fn):通用的迭代函数。可用于近似地迭代对象和数组(代替循环)。...可以有多个参数(合并多项并返回) $.map(array, fn):数组映射。把一个数组中的项目(处理转换后)保存到到另一个新数组中,并返回生成的新数组。..." 12、解决自定义方法或其他类库与jQuery的冲突 很多时候我们自己定义了$(id)方法来获取一个元素,或者其他的一些js类库如prototype也都定义了$方法,如果同时把这些内容放在一起就会引起变量方法定义冲突
还好这个方法并没有太多的外部调用,仔细阅读下我们发现了他的功能其实就是一个拷贝: 将传入的对象拷贝到target上 如果没传target,target就是this,也就是调用者jQuery或者jQuery.fn...整个过程中我们可以看到jQuery大量运用了prototype,如果你对prototype还不是很了解可能会看得云里雾里,那可以先看看我这篇讲prototype的文章。...从源码可以看出,$.extend只是将一个对象拷贝到target上,并没有jQuery中默认拷贝到this的功能。...比如Vue(v 2.6.11),我们在使用的时候就是new Vue()获得一个实例,拿来使用。...商业转载请联系作者获得授权,非商业转载请注明出处。 ?
复合属性选择器 ④ 过滤选择器 * :first 获得选择的元素中的第一个元素 * :last 获得选择的元素中的最后一个元素...* :checked 获得单选/复选框选中的元素 * :selected 获得下拉框选中的元素 4....三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000) * easing:用来指定切换效果,默认是"swing",可用参数"linear...就是元素在集合中的索引 - element:就是集合中的每一个元素对象 - this:集合中的每一个元素对象 * 回调函数返回值 - true:如果当前...* 注意:1.9版本后 .toggle() 方法删除,引入 jQuery Migrate(迁移)插件可以恢复此功能。 9.
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可 以使用dom中的方法,但不能再使用Jquery的方法。...=['#f00','#0f0','#00f'][i]}) //为三个不同的p元素单击事件分别设定不同的处理 jQuery中几个自定义的事件: (1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面...可以有多个参数(合并多项并返回) $.map(array, fn):数组映射。把一个数组中的项目(处理转换后) 保存到到另一个新数组中,并返回生成的新数组。..." 12、解决自定义方法或其他类库与jQuery的冲突 很多时候我们自己定义了$(id)方法来获取一个元素,或者其他的一些js类库如prototype也都定义了$方法,如果同时把这些内容放在一起就会引...如: $("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5] 这些都是Dom对象,可以使用Dom中的方法,但不能再使用jQuery的方法
注意:外观模式一般是作为子系统的功能出口出现,使用的时候可以在其中增加新的功能,但是不推介这样做,因为外观应该是对已有功能的包装,不应在其中掺杂新的功能。 4. 实战中的外观模式 4.1....(nodes, 'click', fn); 这种方式在一些工具库或者框架提供的多功能方法上经常得到使用,特别是在通用 API 的某些参数可传可不传的时候。...参数重载之后的函数在使用上会获得更大的自由度,而不必重新创建一个新的 API,这在 Vue、React、jQuery、Lodash 等库中使用非常频繁。 4.2....抹平浏览器兼容性问题 外观模式经常被用于 JavaScript 的库中,封装一些接口用于兼容多浏览器,让我们可以间接调用我们封装的外观,从而屏蔽了浏览器差异,便于使用。...bindReady 方法的源码参见 Github 链接 jquery/src/core.js 除了屏蔽浏览器兼容性问题之外,jQuery 还有其他的一些其他外观模式的应用: 比如修改 css 的时候可以
重写了本文的初步功能实现,支持一个页面多个画图板。但为简单起见,本文保持不变。 ? 正文 简单的说一个 jQuery 插件只是我们拿来扩展 jQuery prototype 对象的一个方法。...this; }; }(jQuery)); 这样做还有另一个重要的原因,加入这样一个函数还能允许我们引入一个私有的变量作用域,不至于插件里的一些变量污染公共空间。...var canvas = createCanvas(this.width(), this.height()); var ctx = canvas[0].getContext('2d'); // 获得...完成剩余的插件功能 // jquery.sketchpad.js (function($){ function createCanvas(width, height) { var canvas...$.fn.myNewPlugin = function() { return this.each(function() { // 对每个单独的元素做一些操作 });
今天我们来讨论下jquery的插件机制,jquery有着成千上万的第三方插件,有时我们写好了一个独立的功能,也想将其与jquery结合起来,可以用jquery链式调用,这就要扩展jquery,写成插件形式了...操作符…… 例如: bootstrap 框架中的插件写法: !...); 到这一步,高亮插件基本功能已经具备了。... 有些时候,我们的插件需要一些私有方法,不能被外界访问。...6.其他的一些设置,如:为你的插件加入元数据插件的支持将使其变得更强大。
今天我们来讨论下jquery的插件机制,jquery有着成千上万的第 三方插件,有时我们写好了一个独立的功能,也想将其与jquery结合起来,可以用jquery链式调用,这就要扩展jquery,写成插件形式了...操作符…… 例如: bootstrap 框架中的插件写法: !...} }); })(window.jQuery); 3.给插件默认参数,实现 插件的功能 //闭包限定命名空间 (function ($) { $.fn.extend({ "highLight...$.fn.highLight.format = function (str) { return "" + str + ""; } 5.插件私有方法 有些时候,我们的插件需要一些私有方法...6.其他的一些设置,如:为你的插件加入元数据插件的支持将使其变得更强大。
$("div").find(".test") // find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。...$(".test").nextAll() //获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。...$(".test").parents() //获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。...$(".test").parentUntil() //获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。...return false } //最后,大家尝试着用jquery的绑定来完成这个功能!
但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习惯将一些方法封装到另一个自定义的命名空间。...如果你的脚本中包含多个插件,或者互逆的插件(例如: $.fn.doSomething() 和$.fn.undoSomething()),那么你需要声明多个函数名字。...2.2 接受options参数以控制插件的行为 让我们为我们的插件添加功能指定前景色和背景色的功能。我们也许会让选项像一个options对象传递给插件函数。...这就是闭包的功能。为了演示,我们将会添加另外一个“debug”函数到我们的插件中。这个 debug函数将为输出被选中的元素格式到firebug控制台。...如: $.extend({ add:function(a,b){return a+b;} }); 便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery
现在看到jQuery的227行,本篇读jQ的继承方法jQuery.extend()。 官方作用解释是将一个或多个对象合并到目标对象中。...看下源码实现: jQuery.extend = jQuery.fn.extend = function(){ //方法体......对象上添加extend属性,并且在jQuery.fn上面也添加同样的extend属性,还记得前面jQuery.fn = jQuery.prototype不?...extend()方法中,首先定义了一些初始变量: var options, name, src, copy, copyIsArray, clone, target = arguments...这种功能在使用jQuery开发新的插件时,就非常有用了。
1.插件的种类(3种):局部、全局、选择器插件 1.1封装对象方法的插件 这种类型的插件是把一些常用或者重复使用的功能定义为函数,然后绑定到jQuery对象上,从而成为jQuery对象的一个扩展方法...有很多jQuery内部方法,也是在jQuery脚本内部通过这种形式插入到jQuery框架中的,如parent()、appendTo()和addClass()等方法。...//局部方法的插件 $.fn.extend({ test:function(str){ alert(str); } }); 1.2封装全局函数的插件 可以把自定义的功能函数独立附加到...需要通过jQuery.fn()或者$.fn()方式进行引用。...提供了强大的选择器,当然在个性化开发中,可能会感觉到这些选择器不够用,或者使用不是很方便。
领取专属 10元无门槛券
手把手带您无忧上云