摘要: 写在前面:1、这里只是体验iOS开发的一个权宜之计,虚拟机中运行Mac OS X相当缓慢。如果需要真正的开发还是需要购买Mac机器的。2、这里以雪豹为例,Lion没找到……1、我的机器环境:Thinkpad X61,Windows 7 64bit旗舰版,4G DDR2内存2、需要下载的软件:基础环境:VMWare 7.0及以上(低版本在Win7上有问题),Mac OS X Snow Leopard.iso。接下来是两个启动文件,因为雪豹的iso无法在虚拟机上直接启动,搜索下载 Rebel EFI.iso和Darwin.iso。这两个文件都可以用来启动,但是有所区别,下文会提到。3、在VMWar 阅读全文
posted @ 2011-11-19 13:23 FJ. Zhou 阅读(2407) 评论(6) 推荐(1) 编辑
摘要: ###Queue[queue](http://api.jquery.com/queue)是用来维护函数队列的。比较常用的是queue(queueName, callback);其中queueName缺省是fn,即标准函数队列。每个Element可以拥有多个队列,但是基本上都只使用到一个,即默认的fn队列。队列允许一系列函数被异步地调用而不会阻塞程序。例如:$("#foo").slideUp().fadeIn();其实这个就是我们大家常用的链式调用,实际上这是一个Queue。所以队列和Deferred地位类似,是一个内部使用的基础设施。当slideUp运行时,fadeIn被放 阅读全文
posted @ 2011-06-18 22:03 FJ. Zhou 阅读(627) 评论(1) 推荐(0) 编辑
摘要: ###jQuery.data[data模块](http://api.jquery.com/data/)是一个比较有趣的功能,可以为任意的Element添加额外的数据。而且处理了循环引用和内存泄漏的问题。API非常简单,就是.data(key, value)用来保存,.data(key)用开查询数据。data部分的代码从1381行开始。最开始的几行关键代码:jQuery.extend({ // 存储数据的地方,关键实现核心 cache: { }, // 分配ID用的seed uuid: 0, // 为了区别不同的jQuery实例存储的数据,使用前缀+jQuery版本号+随机数作为Key expa 阅读全文
posted @ 2011-06-07 20:33 FJ. Zhou 阅读(806) 评论(0) 推荐(0) 编辑
摘要: ###jQuery.support接下来是非常纠结的一个话题,也是所有JS库必须实现的一个功能:浏览器兼容性和为开发者屏蔽这些差异。其中[jQuery.browser](http://api.jquery.com/jQuery.browser)已经提供了根据UserAgent检测的浏览器信息。而[jQuery.support](http://api.jquery.com/jQuery.support)使用特性检测来检查浏览器的功能以及Bug。和文档一样,首先说明一下,这个模块是很底层的代码,基本不需要在日常开发中使用,但是插件的开发者更需要。因为插件需要兼容各个浏览器。首先看一下support 阅读全文
posted @ 2011-06-01 15:19 FJ. Zhou 阅读(712) 评论(0) 推荐(1) 编辑
摘要: ###Ready函数接下来回到最开始的jQuery.extend函数(268行)中的ready(fn)的定义。这个函数用来处理DOM加载完成的事件。差不多是jQuery最常用的函数之一了。这个功能在jQuery的[文档](http://api.jquery.com/ready)中提到了三种等价的形式:// 定义在jQuery.fn.ready$(document).ready(handler);// 和上一个是同一个,不推荐$().ready(handler);// 单独在jQuery对象中处理$(handler);// 以上这个形式的定义:if(jQuery.isFunction(selec 阅读全文
posted @ 2011-05-31 20:38 FJ. Zhou 阅读(1329) 评论(0) 推荐(1) 编辑
摘要: ###Deferred机制从1.5版本开始,jQuery加入了Deferred功能,让事件处理队列更加的完善。并用这个机制重写了Ajax模块。虽然还没轮到Ajax,但是接下来的事件处理函数中牵扯到了这个机制,所以提前看这段代码。Deferred把回调函数注册到一个队列中,统一管理,并且可以同步或者异步地调用这些函数。jQuery.Deferred()用来构造一个Deferred对象。该对象有状态值,共有三种:Rejected, Resolved和初始状态。其中Resolved表示该操作成功完成了,而Rejected则表示出现了错误,调用失败。Deferred对象的主要成员如下:* done(c 阅读全文
posted @ 2011-05-30 20:05 FJ. Zhou 阅读(1247) 评论(1) 推荐(0) 编辑
摘要: 趁着中午休息,看了一下博客园的高亮。原来也是用Javascript在客户端渲染的。那用自定义脚本替换一下就可以了。这是可以和Markdown混合的标记,用pre元素包含代码,然后用class指定语言种类即可<pre class="javascript">function f() {}</pre>然后用脚本把这个class替换成博客园使用的高亮class就可以了。同时也不影响Markdown标记。$("#cnblogs_post_body pre").each(function() { var language = $(this). 阅读全文
posted @ 2011-05-30 13:09 FJ. Zhou 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 周末[地狱伞兵](http://www.cnblogs.com/chenxumi)发布了一篇文章,用Markdown发布博客。其中使用了自己的JS版解析器。今天特意去找了一个完整的JavaScript版Markdown解析器:Showdown.js。上传js后,发现园子的编辑器是不能直接用src方式链接脚本。必须写到自定义HTML页头中。下面是Markdown测试:#第一级标题 ##第二级标题 _斜体_ [我的博客链接](http://fjzhou.cnblogs.com) 因为这个效果是把脚本加到帖子头部的,所以你进入帖子之后才能看到Markdown效果。而在首页的摘要上还是能看到原始的Ma 阅读全文
posted @ 2011-05-30 12:30 FJ. Zhou 阅读(1008) 评论(1) 推荐(0) 编辑
摘要: 变量列表在初始化jQuery对象的代码开始之前声明了一大堆变量。主要包括:全局变量的备份;处理字符串用的正则表达式;检测浏览器的正则表达式;对核心函数的引用备份。这里略过大部分,只说两种:全局变量和浏览器检测。_jQuery=window.jQuery;_$=window.$;这两个变量是jQuery唯一使用的两个全局变量。在jQuery.noConflict()函数中,会把这两个变量恢复回去。对于浏览器检测,jQuery使用的是检查UserAgent,而没有使用特性检测。rwebkit=/(webkit)[\/]([\w.]+)/,ropera=/(opear)(?:.*version)?[ 阅读全文
posted @ 2011-05-27 15:33 FJ. Zhou 阅读(877) 评论(0) 推荐(2) 编辑
摘要: 简介jQuery最新版本1.6.1的时间戳2011年5月12日。开发未压缩版本229KB,共8937行代码。jQuery的宗旨是WriteLess,DoMore。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,扩展性 阅读全文
posted @ 2011-05-25 14:18 FJ. Zhou 阅读(963) 评论(0) 推荐(2) 编辑