Ruby's Louvre

每天学习一点点算法

导航

上一页 1 ··· 103 104 105 106 107 108 109 110 111 ··· 125 下一页

2009年12月29日 #

javascript 缓存系统

摘要: 模仿jQuery,设计了一个缓存系统。像jQuery.data这样的东西,Prototype与mootools也有,目的都是用来辅助事件系统,用来缓存其中生成的数据,而非缓存普通函数上次计算的结果。Prototype利用了它的Hash类,mootools没细看,它内部好像用来缓存uuid。一个共识是,为页面用到的元素设置uuid非常有用,要查找元素时,可以避免重复查找,也可以用于与事件回调函数相绑... 阅读全文

posted @ 2009-12-29 19:55 司徒正美 阅读(4522) 评论(7) 推荐(6) 编辑

另一个版本的addEvent与removeEvent

摘要: 主要是在内存泄漏上的改进(function() { window.EventUtils = { eventFuncs : [], addEvent : function(o, n, f) { var el, id; // Resolve element by id if needed o = typeof(o) == 'string' ? document.getElementBy... 阅读全文

posted @ 2009-12-29 13:34 司徒正美 阅读(1249) 评论(5) 推荐(1) 编辑

2009年12月27日 #

事件冒泡

摘要: 检测submit事件的冒泡情况: <!doctype html><html dir="ltr" lang="zh-CN" onsubmit="alert('能冒泡到html元素')"> <head id="head"> <meta charset="utf-8"/> <title>事件冒泡 by司徒正美</title><script> document.onsubmit = function(){ 阅读全文

posted @ 2009-12-27 16:18 司徒正美 阅读(3076) 评论(0) 推荐(3) 编辑

2009年12月24日 #

将各种类型或对象都转变为数组

摘要: jQuery的makeArray有其局限性(1.3.4还有bug),我自己实现了一个,不过涉及N多辅助方法。早期尝试使用Ext.isIterable,不过它有点小BUG,如放一个函数进去,它会返回undefined,好歹返回false嘛,另对于用户自定义的类数组对象无法检测,残念!不过我的isArrayLike也不完美,自定义的东西随意性太大了,暂时没办法一网打尽……以后慢慢改进!下面是测试: &... 阅读全文

posted @ 2009-12-24 17:13 司徒正美 阅读(2067) 评论(3) 推荐(0) 编辑

动态创建XML文档

摘要: var createXML = function (str) { if (typeof DOMParser !== "undefined") { return (new DOMParser()).parseFromString(str, "application/xml"); }else if (typeof ActiveXObject != "undefined") { if (typeof a... 阅读全文

posted @ 2009-12-24 14:59 司徒正美 阅读(1038) 评论(1) 推荐(0) 编辑

getWindow与isWindow

摘要: var getWindow = function(obj) { var winProp = !+"\v1" ? 'parentWindow' : 'defaultView'; return obj[winProp] || (obj.ownerDocument && obj.ownerDocument[winProp]) || obj; } var isWindow = function(obj){... 阅读全文

posted @ 2009-12-24 11:27 司徒正美 阅读(1053) 评论(0) 推荐(0) 编辑

2009年12月21日 #

检测浏览器对事件的支持程度

摘要: 自从jQuery搞出特性侦探这东东,西方从来没有如此狂热研究浏览器。在以前javascript与DOM遍地是bug,美工主宰前端的年代,人们只有两种极端方式,用户禁止脚本运行,浏览器商狂升级(IE6之前也很积极的)。这年头,也就Base2与Prototype2做得最好,当然dojo与YUI也不错。不过最近五年,Opera与Safari都建立了对DOM完整的支持后,世界分两半,一半是IE统治的混乱世... 阅读全文

posted @ 2009-12-21 08:42 司徒正美 阅读(3732) 评论(10) 推荐(2) 编辑

2009年12月20日 #

为非IE内核游览器添加onmouseenter 和 onmouseleave事件

摘要: 好像各大类库中jQuery是最后支持这两东东的,关于它们的优势可以参考reglib类库作者的一篇博文《Goodbye mouseover, hello mouseenter》。我们可以在IE观察下它的效果。 <!doctype html><html dir="ltr" lang="zh-CN"> <head id="head"> <meta charse... 阅读全文

posted @ 2009-12-20 12:49 司徒正美 阅读(4839) 评论(4) 推荐(1) 编辑

jQuery源码学习笔记十(改)

摘要: 继续看jQuery这个经典的基于事件注册的东西。之前jQuery管理回调函数都依赖于一个叫global 的顶层变量,在jQuery1.2.2中(这个版本也是个重要的版本,修正了一百多处bug),搞出缓存系统,也是之前介绍过的jQuery.data。回调函数就不再存储在元素上面,取而代之,在这些元素做一个标识,通过标识获得这些回调函数。毕竟在DOM元素乱加自定义属性是内存泄漏的隐患,并开始支持复合类型(如"mouseover mouseout"),不过最大的改进是对事件对象的修正上。 fix: function (event) { //以前我们在回调函数调用event时,还需 阅读全文

posted @ 2009-12-20 09:36 司徒正美 阅读(3358) 评论(6) 推荐(1) 编辑

2009年12月19日 #

jQuery源码学习笔记九

摘要: 最近几天搞了一个基于事件代理的事件系统,但即便是事件代理还是要依赖于事件注册,因此深入研究了jQuery的事件系统,整理出来分享一下。由于IE与标准浏览器闹别扭,我们通过虽然弄一个叫addEvent的函数来屏蔽差异。以下就是一个经典的addEvent函数:var addEvent = function( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+f... 阅读全文

posted @ 2009-12-19 16:33 司徒正美 阅读(3184) 评论(6) 推荐(2) 编辑

上一页 1 ··· 103 104 105 106 107 108 109 110 111 ··· 125 下一页