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

2011年5月19日

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

posted @ 2011-05-19 20:34 xuld 阅读(1044) 评论(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 阅读(1753) 评论(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 阅读(1294) 评论(1) 推荐(0) 编辑

2011年2月20日

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

posted @ 2011-02-20 12:31 xuld 阅读(10159) 评论(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 阅读(582) 评论(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 阅读(810) 评论(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 阅读(459) 评论(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 阅读(1193) 评论(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 阅读(722) 评论(3) 推荐(0) 编辑

2011年1月2日

摘要: 一个 XML 处理很复杂, 但在 .net 却非常方便, 因为系统已提供了 Xml 处理的工具。一个 Xml 的文件处理是这个格式:但是 HTML 就不如此方便了, 当然 .net 有 HtmlDocument 类 (不知道 ? )System.Windows.Form.UI.HtmlDocument 这是控件, 内部是 mshtml.dll 完成, 在 web 就无法使用了。所以非常要做一个 像 XML 一样处理 HTML 的类。 操作 HTML 可以那就非常好了。XML 和 HTML 可以解释为继承 HTML 来自 XMLXmlDocument 类的许多成员在 HtmlDocument 也 阅读全文

posted @ 2011-01-02 23:46 xuld 阅读(2128) 评论(1) 推荐(0) 编辑