博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年5月20日

摘要: 说到Javascript的内置类型,已知的有 Boolean Number String Object RegExp Function Array Date Undefined Null 。但,真的就这么多么?其实还有3个类型这3个类型是Javascript执行器使用的类型,它们不能在代码中直接使用。了解它们可以让你的代码更出色。这三个类型分别是 ReferenceList Activation 。List 是最好理解的,它们用于存储多个值的列表。我们知道,在函数被执行的时候, 可以使用 arguments 来获取当前的参数。但是,arguments 是什么类型 ?Object ? ---- 阅读全文

posted @ 2011-05-20 16:49 xuld 阅读(621) 评论(1) 推荐(0) 编辑

2011年5月19日

摘要: 近期一直在做Js文档生成软件。 目前占据这个领域的主要就是 jsdoc 开源项目。先介绍下 jsdoc 本身,它是用Java开发的(其实主要是Javascript开发) 基于字符串直接处理的文档工具。 因为Javscript非常灵活,Javascript的文档生成自然也比不上Java之类的准确、有效。jsdoc本身要求在注释中大量使用一些标签来告诉文档生成器这是一个类、属性、方法或其它的类型,jsdoc在解析中是通过上下文来决定变量的归属,比如上文使用 @class 标识类, 下文的 @method 就自动处理为上个 @class 所指的类,而完全忽视了代码自身的逻辑。 且不说jsdoc的方. 阅读全文

posted @ 2011-05-19 20:34 xuld 阅读(1052) 评论(3) 推荐(0) 编辑

2011年4月4日

摘要: jQuery 1.5 源码有8068行。很多想读 jQuery 源码的童鞋在读了一半不到就不敢往下读了,jQuery是一个 封装良好、代码紧凑 的框架。几乎很难从jQuery分离其中的一部分功能。所以在这里我分享下应该读 jQuery 源码的一些成果,以及读源码的方法。啃代码是必须的。1. 代码折叠是必须的。因此必须在支持语法折叠的编辑器里打开源码。 根据折叠层次,我们可以很快知道: 所有 jQuery 的代码都在一个函数中: (function( window, undefined ) {// jQuery 代码})(window);这样可以避免内部对象污染全局。传入的参数1是 window 阅读全文

posted @ 2011-04-04 14:58 xuld 阅读(1762) 评论(2) 推荐(5) 编辑

2011年3月6日

摘要: 获取一个节点的属性很简单, elem[ attrName ] 似乎就好,稍复杂点的还可以是 elem.getAttribute( attrName );既然这么简单,似乎就没必要介绍了。但万恶的浏览器们让这么简单的东西变得很复杂。本文讲的属性包括以下这么函数:setAttributegetAttributehasAttributesetStylegetStyle1. getAttribute getAttr 主要解决特殊属性的兼容, 比如 href src 等属性,在 IE 必须使用 getAttrbute('src', 2) 才能获取真实内容。2. setAttribute 阅读全文

posted @ 2011-03-06 00:14 xuld 阅读(1304) 评论(1) 推荐(0) 编辑

2011年2月20日

摘要: 文/xuld本文面向玩代码玩的蛋疼的读者。库和框架都是一种有别于软件、面向程序开发者的产品形式。正因为如此,也有很多人误以为库就是框架,或者认为指定语言的库就是框架。库的英语为 Library ( 简写 Lib ),框架的英语为 Framework。库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫类库。面向过程的代码组织形式而成的库也叫函数库。在函数库中的可直接使用的函数叫库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能。框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类或函数,即可实现全部功能。可以说, 阅读全文

posted @ 2011-02-20 12:31 xuld 阅读(10172) 评论(7) 推荐(8) 编辑

2011年2月15日

摘要: Ext的 Resize 和 Drag 界面非常漂亮,很多朋友想把它用到自己的地方,却不想用整个Ext ,所以本文特别对这2个效果进行制作。让我们先看下效果:1. 修正一些认识。 很多朋友肯能认为拖动时的虚线和透明窗口是为了美观,但其实它们更为了效率。如果窗口里有很多元素,如果经常改变大小,会导致内部元素经常重新布局,最后导致效果卡得不能用。2. 复习上文的拖动。 上文介绍了如何实现拖动,最终我们可以通过如下代码实现拖动: elem.on('dragstart', function(){});3. resizer 节点。 resize时见到的虚框其实是一个和窗口没关的div,我们把这个div称为 阅读全文

posted @ 2011-02-15 22:56 xuld 阅读(585) 评论(0) 推荐(0) 编辑

2011年2月13日

摘要: 节点定位就是获取一个元素所在的位置。jQuery中和节点定位有关的函数为:$.prototype.offset$.prototype.position在DOM编程中,W3C已规定一系列用来定位节点的成员:offsetLeft offsetTop scrollTop scrollLeft getBoundingRect getClientRects不过这些属性被浏览器搞得无法直接用。节点定位看似简单,实现含很多的技巧。在 jQuery 中,专门定义一个类用来管理定位(内部使用)。说到位置,大家肯能想到就是元素的(x, y) 。然后事情不那么简单:假设左上角为(0, 0) 位置, 那一个元素的位置 阅读全文

posted @ 2011-02-13 22:02 xuld 阅读(828) 评论(0) 推荐(0) 编辑

2011年2月10日

摘要: 所谓的事件机制,就是用于实现和事件相关的功能的函数,一般我们操作事件需3个功能:绑定取消绑定执行比如elem.on('click', fn);所有js框架都提供事件函数,因为: 浏览器自带的事件不兼容。目前常用的事件实现有:[Ext] elem.on elem.un elem.fireEvent (addEventListener 等简写)[jQuery] elem.bind elem.unbind elem.trigger[mootools] elem.addEvent elem.removeEvent elem.fireEvent我使用的是:elem.on elem.un 阅读全文

posted @ 2011-02-10 22:52 xuld 阅读(463) 评论(2) 推荐(0) 编辑

2011年1月24日

摘要: DragDrop 看似简单,实现起来却不大容易。 HTML5 已经提供了用于支持 DragDrop 的事件。使用这些事件可以方便实现 dragdrop。介于有些朋友对 HTML5 的 dragdrop 不熟,在这里先介绍下标准的 dragdrop 。dragdrop 不是新物,早在 IE4 就有了。但那时只是 IE 的独家技能,所以标准浏览器不支持此事件,现在 HTML5 采用了 IE 的方法,故目前最新版浏览器都支持 DragDrop 。DragDrop 是 Drag (拖动) Drop(放下) 两个操作。为实现 Drag ,需要知道以下的事件:dragstart - 拖动开始事件drag 阅读全文

posted @ 2011-01-24 17:21 xuld 阅读(1199) 评论(3) 推荐(0) 编辑

2011年1月18日

摘要: 本文送给那些准备写Javascript框架或已经写了一点的强人们,我准备做框架的想法是很早以前就有的。主要有以下原因:对于小应用,我觉得 jQuery 非常好,没必要写和 jQuery 一样的框架。(学习时除外)但大部分时候,我需要的是一个有各种小功能的一个 Javascript 框架 (比如 选项卡 - 闪动效果 -弹窗广告 - 文本框 ctrl + enter 的事件),对于网站后台,更需要一个完整的 UI 框架。我认为理想的 UI 框架应该: 界面漂亮(Ext dwzjs 两个框架的界面是我满意的)面向对象(Ext 是我满意的)(即 比如创建一个 Panel 面板,使用: new Pan 阅读全文

posted @ 2011-01-18 22:23 xuld 阅读(724) 评论(3) 推荐(0) 编辑