extend
第 一个参数可以对象 也可以是布尔 (如果是布尔值表示是否深度便利)
如果是一个对象则 扩展到原来的对象上去
如果是多个对象 则每个对象都扩展到原来的对象上去
var wt = function(){
};
wt.extend = function() {
var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
//根据第一个参数来判断是否深度遍历
if ( typeof target === "boolean" ) {
deep = target;
target = arguments[1] || {};
i = 2;
}
if ( typeof target !== "object" )
target = {};
//如果只有一个遍历对象 (在有判断深度遍历的时候 i=2了 这时是2个以上参数 遍历对象从地2个开始)
// 用 target引用wt
if ( length == i ) {
target = this;
--i;
}
for ( ; i < length; i++ )
if ( (options = arguments[ i ]) != null )
for ( var name in options ) {
var src = target[ name ], copy = options[ name ];
if ( target === copy )
continue;
//如果他们引用的同一个对象 跳出循环 避免重复遍历
if ( deep && copy && typeof copy === "object" && !copy.nodeType )
target[ name ] = wt.extend( deep,
src || ( copy.length != null ? [ ] : { } )
, copy );
//进行深度遍历
else if ( copy !== undefined )
target[ name ] = copy;
}
return target;
};
each
有3个参数 第一个是集合 可以是数组,对象,元素集合(如document.body.getElementsByTagName('div'))
第2个参数是函数 就是每次便利的时候需要执行的函数
如果不带第3个参数arg
且如果第一个参数是obj callbacl的第一个参数是 属性名 第二个是属性直
如果第一个参数是 数组or元素集合 则第一个参数某项的索引 第2个参数是直
第3个参数 是指callback的所需要的参数 可以为空 且必须为数组
browser
判断浏览器的类型 根据window.navigator.userAgent字符串来判断浏览器的类型
param
返回一个参数的字符串形式
Ajax之jsonp和script部分
创建一个script标签 和一个回调函数 返回一个json数据
ready
也就是$(document).ready中的 ready
在非ie浏览器中 document的DOMContentLoaded 方法 可以DOM结构加载完毕之后触发
在ie中 可以用 执行document.documentElement.doScroll("left")
因为没有再加完的时候是会抛出异常的 所以可以不停的重复执行 直到加载成功.
data
应该缓存 或者是保存数据的机制
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
jQuery代码中对回调函数有着广泛的应用,对其有精准的理解是非常有必要的,下面就通过实例对此方法进行简单的介绍。 代码实例如下: 利用回调函数,当div全部隐藏之后弹出一个提示框。 代码如下: <!DOCTYPE ...
调试的时候走的是标红的这段代码,然后用到了callback.call这个函数,于是翻看了一下《js高级程序设计》,其中有比较深的解释。 首先,function是一个指向Function对象,函数名是一个指向函数的指针。那么在函数体内...
使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用...
jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数...关于类级别的插件开发可以采用如下几种形式进行扩展: 1.1 添加一个新的全局函数 添加一个全局函数,我们只需如下定义: Java代码 代
1、步骤分析: 第一步:引入jquery的类库 第二步:直接写页面加载函数 第三步:直接使用jquery的选择器(组合选择)拿到需要操作的元素(奇数行和偶数行) 第四步:分别使用CSS的方法(css(name,value))对奇数行和偶数行...
先给大家说下我的需求:进行ajax请求后,后台传递回来以下json数据。...对上面的json数据类在jquery 的success 函数中解析 JavaScript代码 $.ajax({ type: POST, url: xxx.do, dataType : json, // 指定返
把前阵子写的JQ插件函数(alterBgColor )改写成不基于JQ的代码,还添加了一个click样式效果 代码风格还是按照JQ插件风格来写,使用了闭包来循环设置TR元素的样式 function TableCss(options){ //如果没参数,就退出 ...
首先谈谈这个解析网页树:我先绑定了这2个函数(注意“back”这个函数是我测试时使用的,和源码没有关系)解析的Js如下: (代码可以在源码中看哦,其实就是一个递归原理,十分简单,然后和主程序进行了交互而已。...
当给dom用jq的方法绑定了事件,会生成对应的时间列表 可以看下面的例子(请在firefox中查看 因为firefox中对象支持toSource()) 代码如下:<!DOCTYPE html> <html> <head> <meta http-equiv=”Content...
今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从网上淘到了一个parseUrl函数,正好可以借此实现,代码整理如下: 代码如下://分析url function parseURL(url) { var a = document....
本文实例讲述了jQuery中focus事件用法。分享给大家供大家参考。...以上代码就是将function函数作为事件处理程序通过focus()方法绑定到focus事件。当触发focus事件的时候,就会调此函数。 实例代码: 代码如
最近项目需要用到关于省市区三级联动下拉选择的功能,于是乎网上搜了一些... 对于第一个问题的解决,其实熟悉Jquery的博友估计是不难的,主要涉及:find,eq,attr等函数的操作。下面是其中涉及到的一个案例:用于获取
本文实例讲述了jQuery中mouseover事件用法。分享给大家供大家参考。具体分析如下: 当鼠标指针位于匹配的元素上方...以上代码就是将function函数作为事件处理程序通过mouseover()方法绑定到mouseover事件。 当触发mou
复制代码 代码如下:var dom = $(dom)[0]; 2、使用函数get()访问,例如: 复制代码 代码如下:var dom = $(dom).get(0); get()函数中的参数为索引号。 3、示例 var div = document.createElement("DIV"); div....
eval函数可以把一些处理过程序代码进行解析从而达到可以执行的一个状态,查了很多帖子,jqchart插件做折线图时,处理返回数据时全都是eval,但我怎么也弄不出来,后来发现: 1、根本不需要eval处理,直接截取字符串...
本文实例分析了jquery中append()与appendto()的用法。分享给大家供大家参考。...b、append能够使用函数给被选元素附加内容,语法为: 代码如下:$(selector).append(function(index,html));其中,functi
在项目中,有需求要使用jquery实现滑动效果,于是把相关内容整理如下,下文介绍了很详细,有文字说明和代码分析,需要的朋友可以来学习下。 实现方式一: .slideUp([duration][,complete])——目标元素向上滑入...
jquery-源代码-1 jquery源码分析(2.0.3版本) 大概内容大纲 (功能(){ (21,94)定义了一些变量和函数jQuery = function(){} (96,284)给JQ对象添加一些方法和属性 (285,347)扩展名:JQ的继承方法 (349,...
代码如下: isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; } 分析: 1.什么是对象:其实,在javascript中对象是一组“键/值”的组合,说白了就是数据集,表示属性和方法...
网上有很多教你怎么使用jQuery.data(..)来实现数据缓存,但有两个用户经常使用的data([key],[value])和jQuery.data(element,[key],[value])几乎没有什么文章说清楚它们两...看例子先吧,后再根据源代码分析。 Js代码: