<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>飞鱼 ^_^ 浆抱罗斯‘s blog &#187; jquery</title>
	<atom:link href="http://qilei.org/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://qilei.org</link>
	<description>这里是一个非专业交互设计师 - 飞鱼 的blog。飞鱼的生活就像吃一盘螺丝, 你得努力吸才能品尝到快乐^_^</description>
	<lastBuildDate>Mon, 09 Apr 2012 07:01:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>闭包式 js架构 前端书写心得(上)</title>
		<link>http://qilei.org/201105/the-closure-alike-javascript-platform/</link>
		<comments>http://qilei.org/201105/the-closure-alike-javascript-platform/#comments</comments>
		<pubDate>Tue, 24 May 2011 15:30:26 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[交流会]]></category>

		<guid isPermaLink="false">http://qilei.org/?p=1238</guid>
		<description><![CDATA[5月份的杭州区w3c标准化交流会 带着感冒 去了口碑做了次分享，分享的内容是最近刚接触到的并且用的比较爽快的《闭包式js架构》 顺便吐槽一下，这次来的人不多，不知道是不是不太好意思来交流还是怎么了，是不屑么~？，就当交朋友么~ 其实我也很菜的，听了就知道。 以下是我最近在做新系统的时候用到的一种 闭包式js架构 书写方法，大家慢慢看，有些地方似曾相识，说不定有你想要的东西，仅仅是分享，也许又更好的实现方法。 1. 说说闭包 因为这样的架构思想又一些类似 javascript 的闭包概念。所以我在分享的时候做了下闭包的引导。 分享前做PPT的时候特意去百度娘那里看了下关于闭包的知识补习一下。百科 分享的时候因为主要讲的不是闭包所以顺便带过一下，不过会后，似乎有人反而对闭包感兴趣，嘎嘎。真是指哪哪不响哇。 回来又抽空查了下 《javascript 高级程序设计》中的闭包解释，似乎比百度娘上面的更浅显一些，百科上的是一种比较极端的闭包，(有空朋友可以翻阅一下：p56)。 最简单的闭包 就是全局变量。 2. 利用匿名函数解决$冲突 很多朋友应该会碰到过 一个老系统页面里好多js库的情况吧。神嘛 prototype jQuery mootools 会时不时暂用$符号，导致各种冲突。 记得jquery 有个方法是把$让出来。 这里给出一个比较好用的匿名函数 来形成 封闭作用域来实现。 很多jquery 插件就是这样来书写的 (function($){ /*** * make $ in Closed Scope */ $(function(){ //do something on dom ready }); })(jQuery); 利用匿名函数把，jQuery 引入匿名函数，这样在匿名函数的作用域里，你就可以自由的使用$了，并且这样也同样试用与其他库。 3. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://qilei.org/wp-content/uploads/2011/05/201105-bb.jpg" alt="" title="201105-bb" width="600" height="240" class="alignnone size-full wp-image-1245" /></p>
<h3>5月份的杭州区w3c标准化交流会</h3>
<p>带着感冒 去了口碑做了次分享，分享的内容是最近刚接触到的并且用的比较爽快的《闭包式js架构》<br />
<em>顺便吐槽一下，这次来的人不多，不知道是不是不太好意思来交流还是怎么了，是不屑么~？，就当交朋友么~ 其实我也很菜的，听了就知道。</em></p>
<p>以下是我最近在做新系统的时候用到的一种 闭包式js架构 书写方法，大家慢慢看，有些地方似曾相识，说不定有你想要的东西，仅仅是分享，也许又更好的实现方法。</p>
<h3>1. 说说闭包</h3>
<p>因为这样的架构思想又一些类似 javascript 的闭包概念。所以我在分享的时候做了下闭包的引导。<br />
分享前做PPT的时候特意去百度娘那里看了下关于闭包的知识补习一下。<a href="http://baike.baidu.com/view/648413.htm" target="_blank" rel="help">百科</a><br />
分享的时候因为主要讲的不是闭包所以顺便带过一下，不过会后，似乎有人反而对闭包感兴趣，嘎嘎。真是指哪哪不响哇。</p>
<p>回来又抽空查了下 《javascript 高级程序设计》中的闭包解释，似乎比百度娘上面的更浅显一些，百科上的是一种比较极端的闭包，(<em>有空朋友可以翻阅一下：p56</em>)。 最简单的闭包 就是全局变量。</p>
<h3>2. 利用匿名函数解决$冲突</h3>
<p>很多朋友应该会碰到过 一个老系统页面里好多js库的情况吧。神嘛 prototype  jQuery mootools 会时不时暂用$符号，导致各种冲突。<br />
记得jquery 有个方法是把$让出来。<br />
这里给出一个比较好用的匿名函数 来形成 封闭作用域来实现。 <em>很多jquery 插件就是这样来书写的</em></p>
<pre><code>(function($){

/***
 * make $ in Closed Scope
*/
$(function(){
    //do something on dom ready
});

})(jQuery);
</code></pre>
<p>利用匿名函数把，jQuery 引入匿名函数，这样在匿名函数的作用域里，你就可以自由的使用$了，并且这样也同样试用与其他库。</p>
<h3>3. 怎样不污染命名空间</h3>
<p><span id="more-1238"></span><br />
这个问题曾经困扰我挺久的，因为原现公司老系统里遍地都是 全局变量 全局fun，命名空间污染的让人蛋疼菊紧。 =，=</p>
<p>那么经过我哥的教导，就是利用 变量类形式 只占用 一个全局变量。如下：</p>
<pre><code>(function($){

$.namespace('Platform.tms.home');

})(jQuery);
</code></pre>
<p>上面的namespace是一个jquery插件用来方便建立命名空间。<br />
其实它就等同于下面这段代码。是不是用插件看起来简单多了。</p>
<pre><code>var Platform = {}
    Platform.tms = {}
    Platform.tms.home = {}
</code></pre>
<h3>4. 所谓 闭包式 js 架构 前端书写</h3>
<p>以上其实都是铺垫啦。<br />
有了命名空间不污染全局变量，有了封闭空间匿名函数不会产生js库间的冲突，两者问题都良好解决。<br />
现在要把两者结合起来，形成现在的 架构形式。代码如下：</p>
<pre><code>/**
 * @ TMS Package
 *
 * @author qilei.weiql
 */
(function($, TMS) {

var util = TMS.util;

})(jQuery, Platform.tms);
</code></pre>
<p>从代码里可以看出，我将独立的全局变量类Platform 和 jQuery 引入 匿名函数。<br />
这样做的好处显而易见，就是利用 Platform 搭建桥梁，让 匿名函数内的 资源可以通过 Platform 访问到 其他匿名函数的资源。<br />
简单的说就是类似：一个应用 当它需要用到某组件，那么只要包含某组件js文件进来就可以。</p>
<h3>5. 说明下这样书写的好处</h3>
<p>好处除了前面说的，避免 命名空间污染，不产生库冲突，同时在封闭作用域内，你可以通过引用将全局变量类冗长的名字简化。如上面的代码中就用TMS 代表 Platform.tms，然后直接使用 TMS.util 来访问 Platform.tms.util，这样看起来是不是就简洁许多。<em>这个就是要懒得有风度的表现^_^</em><br />
甚至可以直接缓存你需要的组件，如：</p>
<pre><code>var util = TMS.util;
</code></pre>
<pre><code>var dialog= TMS.widgets.dialog;
</code></pre>
<h3>6. 从一个栗子 表现书写心得</h3>
<pre><code>(function($, TMS) {

/*************************
 *  Header 头部控制类
 */
var Header = {
	init : function(){
		this._initHover();
	},
	_initHover : function(){
		//do something
	}
}

TMS.home.header   = Header ;

})(jQuery, Platform.tms);
</code></pre>
<p>先丢一块代码给大家。上面的代码是渲染一个应用的头部js 文件。<br />
外围代码跟上面差不多。<br />
我的书写方法是 先 新建一个 Header 变量类，里面有一些子方法，如启动方法， 还有其他一切跟header 相关的方法都在里面。<br />
然后将 header 跟 TMS.home.header 对接，便于被其他组件引用， 当然(<em>如果你不像被外接影响，可以不用对接，这样就完全不受影响</em>)</p>
<h3>7. 方便的启动函数便于调试</h3>
<p>看了上面的那么多是不是发现写了那么多怎么启动。。。 现在就跟你说怎么启动，<br />
上面栗子中header 不是 init() 方法么，这个就是 启动函数用来初始化一些数据以及启动专用。<br />
那么一个应用里又很多区域需要启动那么代码就可以这样写。</p>
<pre><code>(function($, TMS) {

$(function(){
TMS.home.header.init();
TMS.home.cate.init();
TMS.home.slider.init();
});

})(jQuery, Platform.tms);
</code></pre>
<p>上面就是对3个模块进行启动操作，就像开关一样，有些人会习惯在 启动函数上添加一些参数神嘛的（类似插件那样），但是这就像是开关一样，开关追求的是一种简洁，讲复杂的东西都放在init()里去吧，会让代码更又层次。<br />
同时 当你需要只对一个模块进行调试的时候，你就只需要注释掉其他两行代码就可以不启动了。是不是很方便。</p>
<h3>8. 闭包式的由来</h3>
<p>说了这么多，这样的书写方法以及优点，闭包式 的名字 是因为 它的两个特性跟闭包有点相似，一个是 封闭的作用域，另外一个是有一个全局变量类， 从一个封闭的作用域中 能够访问到 外部 全局资源，这个就是类似闭包的概念。</p>
<p><em>当然这个名字还是我YY出来的，也许它已经又它的学名了，如果又谁知道的话就不要吝啬 分享一下哇^__^</em></p>
<h3>9. 其他一些可以扩展的东西</h3>
<p>上面的那么多心得都是在 我哥(<a target="_blank" rel="friend" href="http://bencode.org/">笨笨</a>) 虚心教导下产生的，<br />
本来这次分享是直接邀请他来分享的，不过似乎他更忙些。<br />
之后还会分享一些 进阶内容</p>
<ul>
<li>a. <strong>目录配置规范</strong>，为了让组件更规范，必须又它的目录规范</li>
<li>b. <strong>namespace 命名空间 的命名规范</strong>，一套好的命名规范能让整个架构非常又调理</li>
<li>c. <strong>Js 调试，合并方案</strong>，因为各个功能应用组件等都是分布在各个js 文件内的，在发布的时候需要又个合并方案，类似YUI</li>
</ul>
<p>好了这次分享就到这里了，又更好的idea 欢迎 留言 交流学习呢 ^__^</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/200907/jquery-navbar/" title="乱翻乱教- jQuery 制作N级导航菜单">乱翻乱教- jQuery 制作N级导航菜单</a></li><li><a href="http://qilei.org/200903/jquery-for-tab-change-effect/" title="菜鸟级: 标签切换效果 &#8211; JQuery实现">菜鸟级: 标签切换效果 &#8211; JQuery实现</a></li><li><a href="http://qilei.org/200903/jquery-extend-scroll/" title="滚动新闻 &#8211; jquery 扩展插件">滚动新闻 &#8211; jquery 扩展插件</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201105/the-closure-alike-javascript-platform/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>三元运算符 使用小技巧一则 &#8211; javascript</title>
		<link>http://qilei.org/201101/ternary-tip-for-javascript/</link>
		<comments>http://qilei.org/201101/ternary-tip-for-javascript/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 05:01:31 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=1098</guid>
		<description><![CDATA[发现代码慢慢写多了的时候会不自觉的将if else 用 三元来替代，仅仅是未了让代码更简洁精辟，当然也有人说用三元可以让你有高潮的感觉。最近在写js 的时候也有这样的感觉，并且收集了一些小技巧，分享分享。 大鸟请跳过下面这段，大大鸟帮忙指正 ^__^ ====普及线==== 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2，在 expr1 求值为 FALSE 时的值为 expr3。 ============ 普通用法 当你发现你经常用if else if(拜春哥 &#124;&#124; 拜考试帝){ 不挂科; }else{ 门门挂; } 那么三元的表示法就是 拜春哥 &#124;&#124; 拜考试帝 ? 不挂科 : 门门挂 很帅气的发现代码 精辟了 好多。 日常中经常会有这样的 if else 判断，特别是嵌套比较多的时候 用三元是比较和谐的，可以让你的代码看起来更加清爽，结构清晰。 稍微聪明点的用法 通过不断的变化，可以衍生出很多三元的用法。如下一段jquery代码 flag [...]]]></description>
			<content:encoded><![CDATA[<p>发现代码慢慢写多了的时候会不自觉的将if else 用 三元来替代，仅仅是未了让代码更简洁精辟，当然也有人说用三元可以让你有高潮的感觉。最近在写js 的时候也有这样的感觉，并且收集了一些小技巧，分享分享。<br />
<em>大鸟请跳过下面这段，大大鸟帮忙指正 ^__^</em><br />
====普及线====</p>
<pre><code>表达式 (expr1) ? (expr2) : (expr3)
在 expr1 求值为 TRUE 时的值为 expr2，在 expr1 求值为 FALSE 时的值为 expr3。</code></pre>
<p>============</p>
<h3>普通用法</h3>
<p>当你发现你经常用if else</p>
<pre><code>if(拜春哥 || 拜考试帝){
    不挂科;
}else{
    门门挂;
}
</code></pre>
<p>那么三元的表示法就是</p>
<pre><code>拜春哥 || 拜考试帝 ? 不挂科 : 门门挂</code></pre>
<p>很帅气的发现代码 精辟了 好多。</p>
<p>日常中经常会有这样的 if else 判断，特别是嵌套比较多的时候 用三元是比较和谐的，可以让你的代码看起来更加清爽，结构清晰。</p>
<h3>稍微聪明点的用法</h3>
<p>通过不断的变化，可以衍生出很多三元的用法。如下一段jquery代码</p>
<pre><code>flag ? $('body').addClass('hover') : $('body').removeClass('hover') ;</code></pre>
<h3>甚至更变态些的。</h3>
<pre><code>$('.item')[ flag ? 'addClass' : 'removeClass']('hover')</code></pre>
<p>上面的代码看着比较困惑。因为当flag = true 的时候 ，代码就变成以下代码：</p>
<pre><code>$('.item')['addClass']('hover')</code></pre>
<p>这样写法等同于。</p>
<pre><code>$('.item').addClass('hover')</code></pre>
<p>具体解释 详见 <a target="_blank" href="http://www.maisui99.com/javascript-object-literals-small-case/">豪妹的文章</a><br />
// <em>一开始我一直搞不懂为啥子可以这样写，经过沟通突然领悟了，咩哈哈</em></p>
<h3>再升华一下</h3>
<p>可以根据需要来调用自己想要的function来处理更多的事情。</p>
<pre><code>
function a(){
      do something
}
function b(){
      do something
}

flag ? a() : b();
</code></pre>
<h3>那么为师的完全体</h3>
<p>于是有了这么个案例，两个按钮 一个向前的行为，一个向后的行为。操作的功能都差不多。</p>
<pre><code>    var action_turn = function(e, type){
        var self = $(e).closest('li');
        var target = self[type === 'prev' ? 'prev' : 'next']();
        target.addClass('has-img');
        self.removeClass('has-img')
    }

    var btn_next = $('#item-photo-panel a.next')
    btn_next.click(function(){
        action_turn(this, 'next');
        return false;
    });
    var btn_prev = $('#item-photo-panel a.prev')
    btn_prev.click(function(){
        action_turn(this, 'prev');
        return false;
    });
</code></pre>
<h3>尽量避免的情况</h3>
<pre><code>alert( true ? 'true' : false ? 't' : 'f' )</code></pre>
<p>我指的是尽量避免如上嵌套的 三元，因为在js 中 语句是从右到左，上面的代码等同于</p>
<pre><code>alert( true ? 'true' : ( false ? 't' : 'f' ) )</code></pre>
<p>如php 中这个结果就完全不一样，三元嵌套的时候是优先左边的。</p>
<pre><code>echo (( true ? 'true' :  false ) ? 't' : 'f'  )  //php中</code></pre>
<p>tip：<br />
另外发现php中的三元有这样的提示</p>
<blockquote><p>Note: 注意三元运算符是个语句，因此其求值不是变量，而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用，以后的 PHP 版本会为此发出一条警告。</p></blockquote>
<p>但是经过试验，发现在javascript 中上面的做法是可以起作用的，大概是js 比较BT，严谨度没有php那么大的原因。</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li><li><a href="http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/" title="隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)">隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201101/ternary-tip-for-javascript/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>神经特长 &#8211; lazy hover  延迟激活jquery 插件</title>
		<link>http://qilei.org/201009/jquery-plugin-of-lazyhover/</link>
		<comments>http://qilei.org/201009/jquery-plugin-of-lazyhover/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 11:58:04 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=907</guid>
		<description><![CDATA[原图地址：淘宝tms里发现，偷过来用用，喜欢就去看看咩~~~ 做导航菜单的时候，有的时候希望，鼠标移到菜单上去过会儿才激活二级菜单，鼠标移出去之后过会儿才消失。jquery自带的 hover 事件是立马响应的。google了下网上好像没lazyhover的插件。于是 就华丽丽的诞生了这个lazyhover 的插件^__^。 闲话少说，先上代码： $(function(){ $.fn.lazyhover = function(fuc_on, fuc_out, de_on, de_out) { var self = $(this); var flag = 1; var h; var handle = function(elm){ clearTimeout(h); if(!flag) self.removeData('timer'); return flag ? fuc_on.apply(elm) : fuc_out.apply(elm); }; var time_on = de_on &#124;&#124; 0; var time_out = de_out &#124;&#124; 500; var timer = function(elm){ [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-915" title="20100907" src="http://www.qilei.org/wp-content/uploads/2010/09/20100907.jpg" alt="" width="600" height="200" /><br />
<em><a href="http://www.flickr.com/photos/dgkingdom/4910886550/in/pool-1142552@N25/">原图地址</a>：淘宝tms里发现，偷过来用用，喜欢就去看看咩~~~</em></p>
<p>做导航菜单的时候，有的时候希望，鼠标移到菜单上去过会儿才激活二级菜单，鼠标移出去之后过会儿才消失。jquery自带的 hover 事件是立马响应的。google了下网上好像没lazyhover的插件。于是 就华丽丽的诞生了这个lazyhover 的插件^__^。</p>
<p>闲话少说，先上代码：</p>
<pre><code>$(function(){
    $.fn.lazyhover = function(fuc_on, fuc_out, de_on, de_out) {
        var self = $(this);
        var flag = 1;
        var h;
        var handle = function(elm){
            clearTimeout(h);
            if(!flag) self.removeData('timer');
            return flag ? fuc_on.apply(elm) : fuc_out.apply(elm);
        };
        var time_on  = de_on  || 0;
        var time_out = de_out || 500;
        var timer = function(elm){
            h &amp;&amp; clearTimeout(h);
            h = setTimeout(function() { handle(elm);  }, flag ? time_on : time_out);
            self.data('timer', h);
        }
        self.hover(
            function(){
                flag = 1 ;
                timer(this);
            },
            function(){
                flag = 0 ;
                timer(this);
            }
        );
    }
});
</code></pre>
<p>插件使用方法我就不说了，直接贴带代码前就可以，当然jquery.js是必要的(<em>丫不用jquery就当看A-V =，=</em>)。<br />
<span id="more-907"></span><br />
算了，还是贴个使用方法吧：<strong>使用方法</strong>其实跟 jquery一样就是多了两个参数，一个是延迟进入的时间(毫秒)，还有一个是延迟退出的时间。</p>
<pre><code>$('#target').lazyhover(
    function(){
            $(this).addClass('unfold');
    },
    function(){
            $(this).addClass('unfold');
    },
    200,1000 //就多了2个参数
);
</code></pre>
<p>目前只是个初版，觉得有好多细节可以优化，<br />
待优化点：</p>
<ul>
<li>1. 比如当延迟时间是0的时候就要避开setTimeout，毕竟setTimeout是个比较耗资源的家伙。</li>
<li>2. 其次当操作对象过多的时候浏览器负载能力的处理，目前是单对象独立时间事件</li>
</ul>
<p>好了打完收工，有意见想射就射出来吧。<em>哥不怕，咩哈哈~~~~ 用脸接着</em><br />
开源才是真汉子。</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li><li><a href="http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/" title="隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)">隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201009/jquery-plugin-of-lazyhover/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>系统级应用项目中的函数命名冲突问题</title>
		<link>http://qilei.org/201005/how-to-make-the-func-name-no-clrash/</link>
		<comments>http://qilei.org/201005/how-to-make-the-func-name-no-clrash/#comments</comments>
		<pubDate>Mon, 03 May 2010 02:54:35 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=783</guid>
		<description><![CDATA[函数命名冲突问题，相信很多人碰到过。 作为一个刚做js 不久的 小虾米来说，我也没有太多发言权。 但可喜的是最近做的一个系统级的应用项目中碰到了这个问题。 之前在老系统里看到很多程序员参与进来各种小需求，也带进来了好多大大小小的函数，导致某些页面的函数命名很是多样化。 对于如何避免命名冲突问题，自然很多开发都选择了加长函数名称这条无奈但是又死板又实用的方法，如getTranslateTargetIntro,看到这样的名称就是蛋疼。但是结果让其他中途进来的开发前端等蛋很疼~~~，并且到处都是全局变量，冲突得让人想死。 =，= 原因在哪里~~~~? 因为它历史悠久~~~，当初设计这个系统的时候，架构师没想到它以后会成为一个庞大的系统，也不曾想过以后还有那么多蛋疼的前端会加入进来，更没想过，页面上的交互会越变越多，只是单纯的想解决燃眉之急的一个小交互。 于是乎，很多规则，命名方式，功能架构都没有一个清晰的解释型的图表出来。 得扯远了··· 唠叨了一下，^_^ 对于一个新的系统，命名冲突问题如何解决？ 我就单单说说我最近做的这个系统中关于js 部分的函数命名的一个方法吧。 先看一下如下图： 智商高的童鞋相信看了这图就知道啥意思，这个东东可是我哥写了那么多js以及 OOP思想的一些结晶，我觉得很强大，至少我这么觉得，因为很好用。飞鱼端了端眼睛：看不懂的话，继续往下看^_^ 首先是减少全局参量 全局这个东西 应该是越少越好，就像jquery 用个美元$号一样（虽然经常被其他js 库抢），所以如果要让一个系统有一个简洁的js 系统架构，最好给它起个全局变量，这样的好处是，你的系统只占一个全局变量(当然jquery等$是必须的，因为你得依赖它)。这样从命名上就避开了全局变量冲突的问题。 让你的js 系统函数 都分组升级成类 然后根据系统的功能的类型 进行划分，比如web中系统应用，无外乎 layout 初始化，然后是Effect效果，然后是通用模块，等等。这样做的好处是当你有需求要添加什么功能的时候就可以对症下药，而不会出现要加什么功能就往系统里的js 部分最下方添加，导致页面上的js 代码 像狗皮膏药一样，那样会让你的代码很没有深度以及层次(此句话，很有深度，借用我哥的话) 可能上面说的全局变量，功能分类说了懂了，但不知道咋实现。这一步开始将它实体化。 新建一个js文件my.js，写入如下面的代码: var My = {} 然后给你的系统添加一个启动函数，就像机器的开关一样，我们将其命名为run()多么直观^_^ var My = { run: function() { //just do something.... alert('你好，死猪！') } }; [...]]]></description>
			<content:encoded><![CDATA[<p>函数命名冲突问题，相信很多人碰到过。<br />
作为一个刚做js 不久的 小虾米来说，我也没有太多发言权。<br />
但可喜的是最近做的一个系统级的应用项目中碰到了这个问题。<br />
之前在老系统里看到很多程序员参与进来各种小需求，也带进来了好多大大小小的函数，导致某些页面的函数命名很是多样化。<br />
对于如何避免命名冲突问题，自然很多开发都选择了<strong>加长函数名称</strong>这条无奈但是又死板又实用的方法，如getTranslateTargetIntro,<em>看到这样的名称就是蛋疼</em>。但是结果让其他中途进来的开发前端等<strong>蛋很疼~~~</strong>，并且到处都是全局变量，冲突得让人想死。 =，=</p>
<h4>原因在哪里~~~~?</h4>
<p>因为它历史悠久~~~，当初设计这个系统的时候，架构师没想到它以后会成为一个庞大的系统，也不曾想过以后还有那么多蛋疼的前端会加入进来，更没想过，页面上的交互会越变越多，只是单纯的想解决燃眉之急的一个小交互。<br />
于是乎，很多规则，命名方式，功能架构都没有一个清晰的解释型的图表出来。</p>
<p>得扯远了··· 唠叨了一下，^_^</p>
<h4>对于一个新的系统，命名冲突问题如何解决？</h4>
<p>我就单单说说我最近做的这个系统中关于js 部分的函数命名的一个方法吧。<br />
先看一下如下图：<br />
<img src="http://www.qilei.org/wp-content/uploads/2010/05/100502.png" alt="" title="100502" width="500" height="181" class="alignnone size-full wp-image-785" /><br />
智商高的童鞋相信看了这图就知道啥意思，这个东东可是我哥写了那么多js以及 OOP思想的一些结晶，我觉得很强大，至少我这么觉得，因为很好用。<em>飞鱼端了端眼睛：看不懂的话，继续往下看^_^</em><span id="more-783"></span></p>
<p><strong>首先是减少全局参量</strong><br />
全局这个东西 应该是越少越好，就像jquery 用个美元$号一样（<em>虽然经常被其他js 库抢</em>），所以如果要让一个系统有一个简洁的js 系统架构，最好给它起个全局变量，这样的好处是，你的系统只占一个全局变量(当然jquery等$是必须的，因为你得依赖它)。这样从命名上就避开了全局变量冲突的问题。</p>
<p><strong>让你的js 系统函数 都分组升级成类</strong><br />
然后根据系统的功能的类型 进行划分，比如web中系统应用，无外乎 layout 初始化，然后是Effect效果，然后是通用模块，等等。这样做的好处是当你有需求要添加什么功能的时候就可以对症下药，而不会出现要加什么功能就往系统里的js 部分最下方添加，导致页面上的js 代码 像狗皮膏药一样，那样会让你的代码很没有深度以及层次(<em>此句话，很有深度，借用我哥的话</em>)<br />
可能上面说的全局变量，功能分类说了懂了，但不知道咋实现。这一步开始将它实体化。<br />
新建一个js文件my.js，写入如下面的代码:</p>
<pre><code>var My = {}
</code></pre>
<p>然后给你的系统添加一个启动函数，就像机器的开关一样，我们将其命名为run()<em>多么直观^_^</em></p>
<pre><code>var My = {
    run: function() {
         //just do something....
         alert('你好，死猪！')
    }
};</code></pre>
<p>上面的代码其实就是一个类，和它的一个方法，完全的OOP 思想。<br />
那么怎么启动它呢，很简单在它的下面加个动作来开动它。就是标准的jquery 语法。</p>
<pre><code>$(function() {
    My.run();
});</code></pre>
<p>这样我们的系统就起来了。<br />
<strong>然后我们给系统增加一些功能，先从layout模块 来。</strong><br />
My 类下添加一个新的子类 My.Layout。</p>
<pre><code>var My = {
    run: function() {
         //just do something....
         alert('你好，死猪！');
         My.Layout.run();
    }
};
My.Layout = {
    run: function() {
         alert('您又便秘啦？');
    }
};</code></pre>
<p>这里有个小技巧就是<strong>子类命名方式是首字母大写，用2个英文单词构成，来提高识别度</strong>。<br />
看起来，这样来访问My.Layout.run(); 这个方法还是挺长，但是它用点号分隔开，让其命名方式变成了三维。而不是MyLayoutrun()这样的一维命名方式。这样层次一目了然。让我们再增加一个子类，就会了解这其中的奥秘了。</p>
<pre><code>var My = {
    run: function() {
         //just do something....
         alert('你好，死猪！');
         My.Layout.run();
         My.Panel.run();
    }
};
My.Layout = {
    run: function() {
         alert('您又便秘啦？');
    }
};
My.Panel = {
    run: function() {
         alert('死了算了=，=');
    }
};</code></pre>
<p>这个感觉就像是一台机器一样，显示我打开的开关，机器开始启动，初始化了一些初始操作触发了显示模块，然后再做通用模块的操作。 一切都是有秩序的在执行着。<em>很有感觉吧？^_^ 继续</em></p>
<pre><code>var My = {
    run: function() {
         this.root = {};
         this.root.head = $('#head');
         this.root.main = $('#main');
         var root= this.root;
         My.Layout.run(root);
         My.Panel.run(root);
    }
};
My.Layout = {
    run: function(root) {
         this.root = root;
         thit._init_resize()
    },
    _init_resize: function() {
         alert('您又便秘啦？' + this.root.main.text());
    }
};
My.Panel = {
    run: function() {
         alert('死了算了=，=');
    }
};</code></pre>
<p><strong>这一步是亮点</strong>，我将一些需要全局用到的对象打包成一个root之类，然后带入到每个其他子类中，这样就可以访问到这些对象，而不需要另外再申明，(<em>我不知道这样子做能够节省内存开销，还是会浪费，但感觉应该是前者</em>)<br />
这样子的写法，让整个js 系统被一些关系连接在一起，但是又很容易切开，(比如：注释掉My.Panel.run(root) 就能关闭整个Panel 功能，就像一个一个小插件一样)。</p>
<p>扯得优点离题了，其实也不离题啦，这样子写本来就很难产生命名冲突，并且命名规则可以很有秩序，并且不会出现非常长的纠结的名称。</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li><li><a href="http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/" title="隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)">隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201005/how-to-make-the-func-name-no-clrash/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>走马观花 &#8211; jQuery调试工具- jQuery pad</title>
		<link>http://qilei.org/201004/jquery-pad/</link>
		<comments>http://qilei.org/201004/jquery-pad/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 12:21:07 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[生活琐碎]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=775</guid>
		<description><![CDATA[如图，一个jQuery 调试工具，试用了个把星期，觉得非常犀利，不用为了偶尔想到的jquery效果，但又米心思搭个text来调试而放弃。这个工具犀利的地方在于，你想到啥效果，就能马上调试，非常方便，还可以保存下来。并且省了那些万恶 ctrl+tab 等ooxx过程，然后大喊，飞鱼万岁~~~~ 闲话少说： 下载地址：传送门 &#8211; 这个是小众软件上的，感谢小众哥哥，感谢C-C-A-V。 工具配置要求： 该软件需要 .NET Framework 3.5 运行环境，就像一朵鲜花插在牛粪上，又臭又香。 win7就不用麻烦了，系统自带，叉p的童鞋就折腾去吧。 使用方法： 左边写dom，右边写jquery 代码(注意：没有意外，要包个$(document).ready()，因为导出来的代码js部分是在头部。 ) 好吧~ 玩泥巴去吧~ 不要忘了喊，飞鱼万岁~~~ 小众哥哥万万岁~~~ 您可能还对这些日志感兴趣闭包式 js架构 前端书写心得(上) 三元运算符 使用小技巧一则 &#8211; javascript神经特长 &#8211; lazy hover 延迟激活jquery 插件系统级应用项目中的函数命名冲突问题隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.qilei.org/wp-content/uploads/2010/04/100406.jpg" alt="" title="100406" width="500" height="240" class="alignnone size-full wp-image-776" /><br />
如图，一个jQuery 调试工具，试用了个把星期，觉得非常犀利，不用为了偶尔想到的jquery效果，但又米心思搭个text来调试而放弃。这个工具犀利的地方在于，你想到啥效果，就能马上调试，非常方便，还可以保存下来。并且省了那些万恶 ctrl+tab 等ooxx过程，然后大喊，飞鱼万岁~~~~</p>
<p><strong>闲话少说：</strong><br />
下载地址：<a target="_blank" rel="nofollow" href="http://www.appinn.com/jquerypad/">传送门</a> &#8211; 这个是小众软件上的，感谢小众哥哥，感谢C-C-A-V。<br />
<strong>工具配置要求：</strong><br />
该软件需要 .NET Framework 3.5 运行环境，就像一朵鲜花插在牛粪上，又臭又香。<br />
win7就不用麻烦了，系统自带，叉p的童鞋就折腾去吧。</p>
<p><strong>使用方法：</strong><br />
左边写dom，右边写jquery 代码(<em>注意：没有意外，要包个$(document).ready()，因为导出来的代码js部分是在头部。</em> )</p>
<p>好吧~ 玩泥巴去吧~ 不要忘了喊，飞鱼万岁~~~ 小众哥哥万万岁~~~</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/" title="隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)">隔山打牛 &#8211; jQuery中 trigger() &#038; bind() 使用心得 (二)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201004/jquery-pad/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>隔山打牛 &#8211; jQuery中 trigger() &amp; bind() 使用心得 (二)</title>
		<link>http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/</link>
		<comments>http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 17:49:44 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=764</guid>
		<description><![CDATA[上一篇说的trigger()触发事件的解释，因为写着写着 发现有点长，所以就拆成2篇，多牛逼~~~ 咩哈哈·~~ 这篇我介绍一下 trigger() &#038; bind() 配合使用 的 隔山打牛招式，真的是隔山打牛，不是观音坐莲，表想歪。=，= bind() 绑定事件 if 你看过jquery里bind 绑定事件的解释，那基本不用看这篇文章了。 return false else go on 称为绑定事件，字面意思应该是 绑定在其他事件上的事件。 $(function() { var div = $("#mybutton"); //你的按钮。 div.click(function(e,text) { var text = text &#124;&#124; '你是猪啊，~让你点，你就点？'; alert(text); }); div.bind('click', function() { alert("兄弟，没事不要乱点; "); }); }); 上面的代码就是给div的click事件绑定了一个事件。猜猜看哪个先执行？ 当按钮被点击的时候，先执行完click事件后，再执行绑定的事件。 bind() 绑定 自定义事件 说绑定自定义事件的时候先说一下 什么是自定义事件？ trigger()方法是用来触发一些事件型方法，如： div.trigger('click', [...]]]></description>
			<content:encoded><![CDATA[<p>上一篇说的trigger()触发事件的解释，因为写着写着 发现有点长，所以就拆成2篇，多牛逼~~~ 咩哈哈·~~<br />
这篇我介绍一下 trigger() &#038; bind() 配合使用 的 <strong>隔山打牛</strong>招式，<em>真的是隔山打牛，不是观音坐莲，表想歪。=，=</em></p>
<h3>bind() 绑定事件 </h3>
<p>if 你看过jquery里bind 绑定事件的解释，那基本不用看这篇文章了。 return false<br />
else go on</p>
<p>称为绑定事件，字面意思应该是 绑定在其他事件上的事件。</p>
<pre><code>$(function() {
	var div = $("#mybutton"); //你的按钮。
	div.click(function(e,text) {
		var text = text || '你是猪啊，~让你点，你就点？';
		alert(text);
	});

        div.bind('click', function() {
            alert("兄弟，没事不要乱点; ");
        });
});
</code></pre>
<p>上面的代码就是给div的click事件绑定了一个事件。<em>猜猜看哪个先执行？</em><br />
当按钮被点击的时候，先执行完click事件后，再执行绑定的事件。</p>
<h3>bind() 绑定 自定义事件 </h3>
<p>说绑定自定义事件的时候先说一下 <em>什么是自定义事件？</em><br />
trigger()方法是用来触发一些事件型方法，如：</p>
<pre><code>div.trigger('click', [text]);</code></pre>
<p>上面的click 是不是一定要规定的 click，focus等事件型方法嘞？答案是可以触发任何事件。如：</p>
<pre><code>div.trigger('my_action', [text]);</code></pre>
<p>你可以尝试一下，发现firebug 没有报错，说明没有问题，只是这个my_action 事件什么都没做而已。<em>为什么不报错，这个我还在研究，谁知道的告诉我 -，-</em><br />
从这一点看trigger 方法一定是在找 my_action 事件。突然有个idea，既然bind 是绑定事件，既然 my_action 事件什么事情都没做，那我就给它bind 绑定个事件上去不就可以了。于是乎····竟然可以~~<br />
<span id="more-764"></span></p>
<pre><code>$(function() {
	var div = $("#mybutton"); //你的按钮。
	div.bind('my_action', function(e, text) {
            var text = text || ' oh yah, 观 音 坐 莲';
            alert(text);
        });
	div.trigger('my_action');
}); </code></pre>
<h3>隔山打牛 </h3>
<p>那么何为隔山打牛呢？<br />
听我慢慢银荡过来~~~<br />
比如我们有两个盒子，希望点击按钮让  第二个盒子显示第一个盒子里的内容。<br />
平常我们会这样写：</p>
<pre><code>$(function() {
	var div = $("#mybutton"); //你的按钮。
	var box1= $("#mybox1");
	var box2= $("#mybox2");
	div.click(function() {
             var text = box2.val();
             box1.val(text);
        });
}); </code></pre>
<p>利用bind 和 trigger 我们可以这样写。</p>
<pre><code>$(function() {
	var div = $("#mybutton"); //你的按钮。
	var box1= $("#mybox1");
	var box2= $("#mybox2");

	div.bind('my_action', function(e, text) {
             var text = box1.val();
             box2.val(text);
        });

	div.click(function() {
	    $(this).trigger('my_action');
        });

}); </code></pre>
<p>这样写的好处，在以后会慢慢体现，比如你想双击的时候也想 有这样的动作的时候 ：只需要在后面加：</p>
<pre><code>	div.dblclick(function() {
	    $(this).trigger('my_action');
        });</code></pre>
<p>甚至你想在点击后想把第一个盒子消失，只需要在后面再加上</p>
<pre><code>	div.bind('my_action', function(e, text) {
             box1.hide();
        });</code></pre>
<p>这样的好处是，当click事件要处理的事情变多的时候，能将处理的事情进行分类，让代码更加有层次。而不是臃肿的click function。<br />
更神奇的是这样写 bind 事件甚至可以分开存在不同的js 文件 在需要的时候调用，让它变成一个组件形式。<br />
是不是有一种隔山打牛的感觉？</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201003/using-trigger-bind-function-in-jquery-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>老汉推车 &#8211; jQuery中 trigger() &amp; bind() 使用心得 (一)</title>
		<link>http://qilei.org/201003/using-trigger-bind-function-in-jquery/</link>
		<comments>http://qilei.org/201003/using-trigger-bind-function-in-jquery/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:03:07 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=760</guid>
		<description><![CDATA[年前一个项目做下来，全程js 交互写了我半辈子的js代码，重构了N便~~ 不过做项目这东西很锻炼人，强迫你去接触一些没有接触过的东西，收获还是蛮大的。其中收获最大的还是对jQuery 的全新认识了，之前接触jquery一直都是表现类的，如show，hide，hover，等方法，这次项目，接触了许多事件类代码。 trigger() 触发事件 这个方法是jQuery 1.3中新增的一个引起触发事件的函数。具体解释可以去这里下载 最新的jquery 手册查一下，里面解释的很清楚，就是字有点多。 如果你比较懒那么我稍微解释一下这个东东。我也是挂羊头卖狗肉 =，= 触发事件就是 类似于点击click, mouseover, keydown 等有动作的js事件，简单的说就是一个动作，可能有人会问，那show, hide 是不是? 不是，show 这 效果，手册里刚打开的速查页面里的事件类目就是上面所说的触发事件 说了这么多，还没切到主题，=，=我就这样 ，容易跑题，大伙看习惯了就好。 为什么要用 trigger() ？ 比如：你给一个按钮添加了一个click点击事件，弹出提示框，代码如下。 var div = $("#mybutton"); //你的按钮。 div.click(function() { alert('你是猪啊，~让你点，你就点？'); }); 上面的代码就是一个按钮的click事件。这个时候你有个非分的要求，就是希望页面刷新的时候就点一下这个按钮。如果不用trigger()你可以在后面这样写： div.click(); 如果用trigger()，你就要写成这样：效果跟上面这句是一样，就是稍微长点。 div.trigger("click"); 然后有人说：你是猪啊·~~ 上面这个短一点，你还教我用下面这个 =，= 表急着揍我么~· 继续往下看。 你用手册 里的索引搜一下click 可以看到 两条 结果 click() 和，click(fn)，然后 搜一下trigger 发现只有一个 [...]]]></description>
			<content:encoded><![CDATA[<p>     年前一个项目做下来，全程js 交互写了我半辈子的js代码，重构了N便~~ 不过做项目这东西很锻炼人，强迫你去接触一些没有接触过的东西，收获还是蛮大的。其中收获最大的还是对jQuery 的全新认识了，之前接触jquery一直都是表现类的，如show，hide，hover，等方法，这次项目，接触了许多事件类代码。</p>
<h3>trigger() 触发事件 </h3>
<p>    这个方法是jQuery 1.3中新增的一个引起触发事件的函数。具体解释可以去<a target="_blank" href="http://code.google.com/p/jquery-api-zh-cn/downloads/list">这里下载</a> 最新的jquery 手册查一下，里面解释的很清楚，就是字有点多。<br />
    <em>如果你比较懒那么我稍微解释一下这个东东。我也是挂羊头卖狗肉 =，=</em><br />
触发事件就是 类似于点击click, mouseover, keydown 等有动作的js事件，简单的说就是一个动作，可能有人会问，那show, hide 是不是? 不是，show 这 效果，<em>手册里刚打开的速查页面里的事件类目就是上面所说的触发事件</em><br />
    说了这么多，还没切到主题，=，=我就这样 ，容易跑题，大伙看习惯了就好。</p>
<h3>为什么要用 trigger() ？</h3>
<p>    比如：你给一个按钮添加了一个click点击事件，弹出提示框，代码如下。</p>
<pre><code>var div = $("#mybutton"); //你的按钮。
div.click(function() {
    alert('你是猪啊，~让你点，你就点？');
});
</code></pre>
<p>上面的代码就是一个按钮的click事件。这个时候你有个非分的要求，就是希望页面刷新的时候就点一下这个按钮。如果不用trigger()你可以在后面这样写：</p>
<pre><code>div.click();</code></pre>
<p>如果用trigger()，你就要写成这样：效果跟上面这句是一样，就是稍微长点。</p>
<pre><code>div.trigger("click");</code></pre>
<p>然后有人说：你是猪啊·~~ 上面这个短一点，你还教我用下面这个 =，=<br />
表急着揍我么~· 继续往下看。<br />
<span id="more-760"></span><br />
你用手册 里的索引搜一下click 可以看到 两条 结果 <strong>click()</strong> 和，<strong>click(fn)</strong>，然后 搜一下trigger 发现只有一个 trigger(type, [data]) 。<br />
然后你知道我的意思了吧。&#8212; trigger 可以传参数进去。<br />
我们看看 手册里的trigger 例子：</p>
<pre><code>$("p").click( function (event, a, b) {
  // 一个普通的点击事件时，a和b是undefined类型
  // 如果用下面的语句触发，那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);</code></pre>
<p>了解了吧？如果用click 的话，它不吃参数，用trigger的话，就能吃了。<br />
练习一下吧：黏贴到你的页面上试试看，记得把jquery载进来。</p>
<pre><code>$(function() {
	var div = $("#mybutton"); //你的按钮。
	div.click(function(e,text) {
		var text = text || '你是猪啊，~让你点，你就点？';
		alert(text);
	});
	div.trigger("click","您好，请点击按钮");
});
</code></pre>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/201003/using-trigger-bind-function-in-jquery/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>乱翻乱教 &#8211; jQuery图片轮播插件 &#8211; 菜鸟版</title>
		<link>http://qilei.org/200909/jquery-fade-picture/</link>
		<comments>http://qilei.org/200909/jquery-fade-picture/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:49:02 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[乱翻乱教]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=551</guid>
		<description><![CDATA[jQuery图片轮播插件 作者：飞鱼 制作工具：notpad++ 使用语言：javascript 最近写的这个图片轮播插件，于是乎拿出来晒晒，分享点菜鸟心得。大虾可以旁观^_^ 功能描述 就是一个简单的js轮播，第一张图变白，然后切换成第二张图。鼠标放上去后图片不切换，移开又开始了。 可以给组图片加效果，并且不冲突。 有空补一下 代码注释，以及 setInterval 的应用 演示效果图 演示地址： 跳转地址 js 代码 (function($) { $.fn.fadPicture = function(d) { var df = 3000; delay = d ? (d &#60; df ? df : d) : df; $(this).each(function(i){ var t = $(this), mc = function(){ var ul = t, first = ul.find('li:first'); [...]]]></description>
			<content:encoded><![CDATA[<p><img class="janblus-preview" src="http://pic.yupoo.com/2-fish/2499881ffc9b/thumb.jpg" alt="jQuery图片轮播插件" width="100" height="100" /></p>
<h2>jQuery图片轮播插件</h2>
<p>作者：飞鱼<br />
制作工具：notpad++<br />
使用语言：javascript<br />
<em>最近写的这个图片轮播插件，于是乎拿出来晒晒，分享点菜鸟心得。大虾可以旁观^_^</em></p>
<h3>功能描述</h3>
<p>就是一个简单的js轮播，第一张图变白，然后切换成第二张图。鼠标放上去后图片不切换，移开又开始了。 可以给组图片加效果，并且不冲突。<br />
<em>有空补一下 代码注释，以及 setInterval 的应用</em></p>
<h3>演示效果图</h3>
<p><img alt="" src="http://pic.yupoo.com/2-fish/4479964c1756/small.jpg" class="alignnone" width="240" height="212" /><br />
演示地址： <a href="http://code.qilei.org/jquery/jquery_fadPicture.html" target="_blank">跳转地址</a></p>
<p><span id="more-551"></span></p>
<h3>js 代码</h3>
<pre><code>(function($) {
  $.fn.fadPicture = function(d) {
    var df = 3000;
    delay = d ? (d &lt; df ? df : d) : df;
    $(this).each(function(i){
      var t = $(this),
        mc = function(){
          var  ul = t,
            first = ul.find('li:first');
          ul.fadeOut('show',
            function(){
              first.appendTo(ul);
            }
          );
          ul.fadeIn();
        };
      var interval = setInterval(function(){
        mc();
      }, delay);
      t.hover(
        function(){
          clearInterval(interval);
          t.data('start',false);
        },
        function(){
          interval = setInterval(function(){
            mc();
          }, delay);
        }
      );
    });
  };
})(jQuery);</code></pre>
<h3>使用方法</h3>
<pre><code>$(document).ready(function(){
  $('.fadPicture').fadPicture();
  // $('.fadPicture').fadPicture(5000);  //时间5秒
});
</code></pre>
<h3>html写法</h3>
<pre><code>&lt;ul class="fadPicture"&gt;
      &lt;li&gt;&lt;img src="http://001.jpg" alt="001" /&gt;&lt;/li&gt;
      &lt;li&gt;&lt;img src="http://002.jpg" alt="001" /&gt;&lt;/li&gt;
      &lt;li&gt;&lt;img src="http://003.jpg" alt="001" /&gt;&lt;/li&gt;
    &lt;/ul&gt;</code></pre>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/200810/a-site-about-learn-jquery/" title="发现一个jQuery初学者的天堂">发现一个jQuery初学者的天堂</a></li><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/m8-developer-starting-with-vs2008/" title="乱翻乱教 – M8开发环境(vs2008)配置 [菜鸟版]">乱翻乱教 – M8开发环境(vs2008)配置 [菜鸟版]</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/200909/jquery-fade-picture/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>乱翻乱教- jQuery 制作N级导航菜单 &#8211; 插件版</title>
		<link>http://qilei.org/200907/jquery-menu-plugin/</link>
		<comments>http://qilei.org/200907/jquery-menu-plugin/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 09:32:00 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[乱翻乱教]]></category>
		<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=516</guid>
		<description><![CDATA[前几天做的jQuery实现N级导航菜单，实现起来超级简单，但是如果要将效果更丰富化的话，可能就不止这么点代码了。 于是乎，向笨笨先生(我哥)讨教了几番，得出了这么一个jquery menu 插件。代码依然很简单，稍微复杂点，可以在按钮放上去的时候触发一个动画效果，离开也可以触发一个动画效果，还添加了延迟释放效果(鼠标移开后有个缓冲，再消失) 代码如下： (function($) { //N级导航插件 $.fn.menu = function(options) { options = $.extend({ delay: false }, options); this.find('li:has(ul)').hover( function() { var t = $(this); t.data('hide_menu', false); t.find('>ul').css('display', 'block'); // 可以换成动画效果 }, function() { var t = $(this); t.data('hide_menu', true); var hide_menu = function() { if (t.data('hide_menu')) { t.find('>ul').css('display', 'none'); // 可以换成动画效果 } }; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://pic.yupoo.com/2-fish/991487bb8013/medium.jpg" alt="" width="500" height="375" /><br />
前几天做的<a href="http://www.qilei.org/200907/jquery-navbar/">jQuery实现N级导航菜单</a>，实现起来超级简单，但是如果要将效果更丰富化的话，可能就不止这么点代码了。</p>
<p>于是乎，向笨笨先生(我哥)讨教了几番，得出了这么一个jquery menu 插件。代码依然很简单，稍微复杂点，可以在按钮放上去的时候触发一个动画效果，离开也可以触发一个动画效果，还添加了延迟释放效果(<em>鼠标移开后有个缓冲，再消失</em>)</p>
<p><strong>代码如下：</strong><span id="more-516"></span></p>
<pre><code>(function($) { //N级导航插件
  $.fn.menu = function(options) {
    options = $.extend({
      delay: false
    }, options);

    this.find('li:has(ul)').hover(
      function() {
        var t = $(this);
        t.data('hide_menu', false);
        t.find('>ul').css('display', 'block'); // 可以换成动画效果
      },

      function() {
        var t = $(this);
        t.data('hide_menu', true);
        var hide_menu = function() {
          if (t.data('hide_menu')) {
            t.find('>ul').css('display', 'none'); // 可以换成动画效果
          }
        };
        options.delay ? setTimeout(hide_menu, options.delay)
            : hide_menu();
      }
    );
  };
})(jQuery);</code></pre>
<p>代码非常简练，可以根据实际需求增加其他效果。<br />
使用方法如下：</p>
<pre><code>
jQuery(function($) {  //调用插件
  //$('.menu').menu() //默认调用语法;
  $('.menu').menu({delay: 500}); //延迟500ms释放
})</code></pre>
<p>PS：<a target="_blank" href="http://code.qilei.org/jquery/jquery_menu.html">演示地址</a></p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li><li><a href="http://qilei.org/201005/how-to-make-the-func-name-no-clrash/" title="系统级应用项目中的函数命名冲突问题">系统级应用项目中的函数命名冲突问题</a></li><li><a href="http://qilei.org/201004/jquery-pad/" title="走马观花 &#8211; jQuery调试工具- jQuery pad">走马观花 &#8211; jQuery调试工具- jQuery pad</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/200907/jquery-menu-plugin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>乱翻乱教- jQuery 制作N级导航菜单</title>
		<link>http://qilei.org/200907/jquery-navbar/</link>
		<comments>http://qilei.org/200907/jquery-navbar/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 05:09:52 +0000</pubDate>
		<dc:creator>飞鱼</dc:creator>
				<category><![CDATA[乱翻乱教]]></category>
		<category><![CDATA[代码浅谈]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.qilei.org/?p=503</guid>
		<description><![CDATA[突然发现将近一个月没写东东了(拜托就是一个月好伐)。飞鱼：额，最近在做月子= = jQuery 制作仿DNF首页导航菜单效果 作者：飞鱼原创 飞鱼: 偶然发现这个东东很实用，就手把手写了个。 DNF首页的那只导航，似乎纯手写的。我这次要写的是用jquery来制作，制作代码非常极其简单，看了就知道怎么做(老鸟可以绕过哈，谁让咱们都是菜鸟 = =) 最终效果图 支持N级导航(添加子导航无需另外添加代码)。 html代码 首先当然是html啦，代码如下，没有什么技术含量， &#60;div class="menu" &#62; &#60;ul&#62; &#60;li&#62; &#60;a href="#"&#62;游戏介绍&#60;/a&#62; &#60;ul&#62; &#60;li&#62;&#60;a href="#"&#62;升级体验&#60;/a&#62;&#60;/li&#62; &#60;li class="sub"&#62; &#60;a href="#"&#62;游戏2&#60;/a&#62; &#60;ul&#62; &#60;li&#62;&#60;a href="#"&#62;天赋系统&#60;/a&#62;&#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;升级体验&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; &#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;故事背景&#60;/a&#62;&#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;职业介绍&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; &#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;天赋系统&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; &#60;/div&#62; css代码 因为是仿dnf官方首页导航，所以样式也多少参考了一下它的样式，(图片我也给扣过来了 嘎嘎) .menu{ height:27px; float:left; background:#1d1d1d url(http://ossweb-img.qq.com/images/dnf/web200812/box_bg1.gif) repeat; border:2px [...]]]></description>
			<content:encoded><![CDATA[<p>突然发现将近一个月没写东东了(拜托就是一个月好伐)。<em>飞鱼：额，最近在做月子= =</em><br />
<img class="janblus-preview" src="http://pic.yupoo.com/2-fish/2499881ffc9b/thumb.jpg" alt="jQuery 制作仿DNF首页导航菜单效果" width="100" height="100" /></p>
<h2>jQuery 制作仿DNF首页导航菜单效果</h2>
<p>作者：飞鱼原创<br />
<em>飞鱼: 偶然发现这个东东很实用，就手把手写了个。</em><br />
<a href="http://dnf.qq.com/" target="_blank">DNF首页</a>的那只导航，似乎纯手写的。我这次要写的是用jquery来制作，制作代码非常极其简单，看了就知道怎么做(老鸟可以绕过哈，谁让咱们都是菜鸟 = =)</p>
<h3>最终效果图</h3>
<p>支持N级导航(<em>添加子导航无需另外添加代码</em>)。<br />
<img class="alignnone" src="http://pic.yupoo.com/2-fish/988277bb9406/medium.jpg" alt="" width="500" height="230" /><br />
<span id="more-503"></span></p>
<h3>html代码</h3>
<p>首先当然是html啦，代码如下，没有什么技术含量，</p>
<pre><code>&lt;div class="menu" &gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href="#"&gt;游戏介绍&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;升级体验&lt;/a&gt;&lt;/li&gt;
          &lt;li class="sub"&gt;
            &lt;a href="#"&gt;游戏2&lt;/a&gt;
            &lt;ul&gt;
              &lt;li&gt;&lt;a href="#"&gt;天赋系统&lt;/a&gt;&lt;/li&gt;
              &lt;li&gt;&lt;a href="#"&gt;升级体验&lt;/a&gt;&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;故事背景&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;职业介绍&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;天赋系统&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;</code></pre>
<h3>css代码</h3>
<p>因为是仿dnf官方首页导航，所以样式也多少参考了一下它的样式，(<em>图片我也给扣过来了 嘎嘎</em>)</p>
<pre><code>.menu{
  height:27px;
  float:left;
  background:#1d1d1d url(http://ossweb-img.qq.com/images/dnf/web200812/box_bg1.gif) repeat;
  border:2px solid #000;
}
.menu ul{
    border:1px solid #3f3f37;
    height:25px;
    float:left;
}
.menu li{
  float:left;
  position:relative;
  text-align:center;
  width:70px;
  background:url(http://ossweb-img.qq.com/images/dnf/web200812/img.gif) no-repeat -480px 9px;
}
.menu li .sub{
  background:url(http://ossweb-img.qq.com/images/dnf/web200812/img.gif) no-repeat -420px 9px;
}
.menu li a{
  color:#b29056;
  display:block;
  height:25px;
  line-height:25px;
}
  .menu li a:hover{
    color:#fff;
    text-decoration:none;
  }
  .menu li ul{
    position:absolute;
    top:25px;
    left:-1px;
    display:none;
    width:68px;
    height:auto;
    float:none;
    border-bottom:none;
    background:#1d1d1d url(http://ossweb-img.qq.com/images/dnf/web200812/box_bg1.gif) repeat;
  }
  .menu li ul a{
    display:block;
    height:25px;
    line-height:25px;
  }
    .menu li ul a:hover{
      background:#070707 url(http://ossweb-img.qq.com/images/dnf/web200812/r_linkbg.gif) repeat;
    }
  .menu li ul li{
    position:relative;
    width:68px;
    border-bottom:1px solid #3f3f37;
    background:none;
  }
  .menu li li ul{
    position:absolute;
    top:-1px;
    left:68px;
  }</code></pre>
<h3>js代码</h3>
<p>这个代码，可以说是相当滴简单，只用了一只语法(.hover)。<br />
说明一下代码的用处细节：(菜鸟专用，老鸟请跨过去 = =)</p>
<pre><code>$(document).ready(function(){
  $('.menu li').hover(  //给menu 下的所有li 添加 hover 动作
    function () {   //鼠标在li 上时让 li 下的ul 显示出来
      $(this).children('ul:first').css('display', 'block');
    },
    function () {  //鼠标在离开li 上时让 li 下的ul 隐藏掉
      $(this).children('ul:first').css('display', 'none');
    }
  );
});</code></pre>
<p>上面代码中我用:first 来只取第一个来提高效率(不知道我这样做对不对，感觉上应该是对的 &#8211; -)。</p>
<p>PS：代码演示，因为最近用的都不是自个儿的电脑，FTP上不去，就委曲下自己 尝试一下呢，效果还是不错的。</p>
<p>PS2：可以在这基础上增加其他功能：<em>比如鼠标离开后，过半秒中导航才消失</em>，这个需要用到setTimeout 函数来解决。有空我写个。^_^</p>
<h2  class="related_post_title">您可能还对这些日志感兴趣</h2><ul class="related_post"><li><a href="http://qilei.org/201105/the-closure-alike-javascript-platform/" title="闭包式 js架构 前端书写心得(上)">闭包式 js架构 前端书写心得(上)</a></li><li><a href="http://qilei.org/200903/jquery-for-tab-change-effect/" title="菜鸟级: 标签切换效果 &#8211; JQuery实现">菜鸟级: 标签切换效果 &#8211; JQuery实现</a></li><li><a href="http://qilei.org/200903/jquery-extend-scroll/" title="滚动新闻 &#8211; jquery 扩展插件">滚动新闻 &#8211; jquery 扩展插件</a></li><li><a href="http://qilei.org/201101/ternary-tip-for-javascript/" title=" 三元运算符 使用小技巧一则 &#8211; javascript"> 三元运算符 使用小技巧一则 &#8211; javascript</a></li><li><a href="http://qilei.org/201009/jquery-plugin-of-lazyhover/" title="神经特长 &#8211; lazy hover  延迟激活jquery 插件">神经特长 &#8211; lazy hover  延迟激活jquery 插件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://qilei.org/200907/jquery-navbar/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

