摘要:
jquery1.4,事件绑定后会m会被覆盖,两个事件指向最后的对象,情形如下:function pop1(){ var obj = { m: "2", fn: function() { $(window).bind("resize",$.proxy(this.pop, this)); } }; $.extend(obj,a); obj.fn();}function pop2(){ var obj = { m: "3", fn: function() { $(window).bind("resize",$.proxy 阅读全文
摘要:
由于系统默认radio控件不怎么好看,而且会由于不同浏览器显示不同的结果,所以一般在设计表单的时候,都会进行美化我们都知道系统默认的空间不能直接改变背景之类的方式来美化,分几个步骤操作:1.隐藏radio,用label做左填充,定位图片来显示美化后的效果2.使用js来控制选中状态3.label通过for属性定位到真实的radio上(不通过脚本)我们隐藏radio后,label通过for属性定位到radio,在ff\chrome等都没有问题,但是IE却不能定位到绑定的radio上,可能由于机制某种机制问题,display:none,visibility:hidden,均不能通过,所以通过定位,直 阅读全文
摘要:
今天在做一个联动的效果的时候,IE下老报错,当时其他浏览器都没有问题,而且逻辑也正常;调试了很久,最后才发现,在标签自定义属性写入的值为数组的时候,由于浏览器不同,结果会大相径庭:IE会认为是数组,其他浏览器则认为是字符串,原因是在设置属性的值的时候,其他浏览器自动转化为字符串,可是IE保留原数值类型,所以才做后续操作的时候出现差异。 阅读全文
摘要:
偶尔抽空看看jQuery1.6的源码,却一直在看里面的一些方法,却没有对jQuery清晰的认识,刚好又时间又重新从头来看看。jQuery1.6将近9000行的代码,看看都头晕,把代码简化成这样看就清晰多了:(function( window, undefined ) {var jQuery = (function() { var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); }; jQuery.fn = jQuery.protot... 阅读全文
摘要:
userAgent = navigator.userAgent,//User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。下面分别是各个浏览器的navigator.userAgent//Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1 --safari//Mozilla/5.0 阅读全文
摘要:
a={id:1,get:function(){alert(this.id)}} $("#test").click(a.get)//这时候所指的id就不是1,而是test 如果想要得到的是1,那就必须改变上下文环境$. $.proxy()的作用就是改变当前上下文环境。 $("#test").click($.proxy(a,"get")) $("#test").click($.proxy(a.get,a)) proxy: function( fn, context ) {//改变函数上下文环境,this指向设置的对象 阅读全文
摘要:
makeArray: function( array, results ) {//转换一个类似数组的对象成为真正的JavaScript数组。results为可选参数 var ret = results || [];//results作为存放arry的数组,如果没有定义就设置为空数组 if ( array != null ) {{//window,String,Function,Array类型的.length不为undefined;(document.getElementById IE 为undefined,jQuery.type(document.getElement... 阅读全文
摘要:
error: function( msg ) {//声明错误 throw msg; }, parseJSON: function( data ) {//把字符串转换成json格式 if ( typeof data !== "string" || !data ) {//首先判断是否存在,是否为字符串 return null; } data = jQuery.trim( data );//去掉前后空白 if ( window.JSON && window.JSON.parse ) {//高级版本有原生JSON转换函数window.JSON return wi.. 阅读全文
摘要:
首先定义了全局变量class2type = {};rdigit = /\d/,//正则判断是否是数字toString = Object.prototype.toString;通过jQuery.each,定义class2type的属性和值: jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] 阅读全文
摘要:
jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; if ( typeof target === "boolean" ) {//深度复制 deep = target; target = arguments[1] || {}; i = 2; } if ( typeof target 阅读全文