SlideShare ist ein Scribd-Unternehmen logo
1 von 43
基于 YUI3 的组件开发 续 拔赤  [email_address] http://www.uedmagazine.com   2009-12-11
[object Object],[object Object],[object Object],[object Object]
回顾 组件化的 web 开发 组件的模样 开发一个组件
Our Choise?
WHY YUI ?
使用原生 javascript 的开发
使用 prototype 的开发
使用 JQuery 的开发
使用 YUI 的开发
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
当 click 发生的时候执行 foo var foo = new Function; document.onclick = foo;
绑定 foo 回调,等待 click 的发生
事件的细节?
事件的生命周期 ,[object Object],[object Object],[object Object]
浏览器是事件工厂
事件工厂生产浏览器事件 Click Mouseover Keydown Keypress Mouseout Blur Load Dbclick Change
面向开发者的 运行时环境 runtime
[object Object],[object Object],[object Object],浏览器的实现,对开发者不可见 IE/FF/Safari  click/mouseover…  宿主元素 a/div/input 发布事件  事件类型 触发回调
[object Object],[object Object],[object Object],IE/FF/Safari  click/mouseover…  宿主元素 a/div/input 发布事件  事件类型 触发回调 document.onclick = callback;
[object Object],监听绑定的实现方法 setter 方法 vs
[object Object],Widget.on(‘trigger’,callback); Widget.setCallback(callback); setter 方法
[object Object],// 点击空白处弹层关闭 document.onclick  = function(){ Box.close(); }; // 点击空白处弹层关闭 且 菜单关闭 document.onclick  = function(){ Box.close(); Menu.close(); }; 需求增加
// 点击空白处弹层关闭 Y.on('click',function(e){ Box.close(); },document); // 点击空白处弹层关闭 Y.on('click',function(e){ Box.close(); },document); // 点击空白处菜单关闭 Y.on('click',function(e){ Menu.close(); },document); 事件监听 需求增加
[object Object],setter 方法
YUI3 的自定义事件 // 实现一个三击事件 // 事件工厂 var tripleClickFactory = function(){}; Y.augment(tripleClickFactory, Y.Event.Target); // 事件注册 var tripleClick = new tripleClickFactory('#id'); // 触发回调 tripleClick.fire('tpClick',[s1,s2]); // 监听绑定 tripleClick.subscribe('tpClick', callback); Example:  http:// www.uedmagazine.com/test/tripleclick.html
组件的自定义事件 // 事件的定义在组件内完成 // 给分页组件绑定监听 new PAGINATION(node).on(‘trigger’,function(n){ Y.log(n); }); Example:  http://www.uedmagazine.com/test/plugin/pagination-plugin.html
[object Object],[object Object],[object Object]
YUI3 中的 OOP ,[object Object],[object Object],[object Object],[object Object],[object Object],类继承 类扩充 对象克隆 对象合并 对象聚合 Function Function Object Object Object
[object Object],[object Object],Extend 与 Augment 的区别
YUI3 里的掺元类 专门用来被扩充用的 ,[object Object],[object Object]
[object Object],[object Object],[object Object]
YUI3 对 plugin 的定位
Plugin 的三个要素 ,[object Object],[object Object],[object Object],Example:  http:// www.uedmagazine.com/test/plugin/astro.html   Example:  http://www.uedmagazine.com/test/plugin/pagination-plugin.html
Host Plugin
Host Plugin Meny meny Plugins
Plugin 的定义 // 定义一个插件 var AnchorPlugin = function(){}; AnchorPlugin.NS = 'anchors';
Plugin 的装载 // 装载插件 var container = Y.Node.get('#id'); container.plug(AnchorPlugin);
执行插件提供的方法 // 执行插件提供的方法 container.anchors.disable();
Plugin 的卸载 //plugin 的卸载 container.unplug(AnchorPlugin);
 
Thank u ~ 拔赤 - 李晶 msn/email:lijing00333@163.com Blog: http://www.uedmagazine.com

Weitere ähnliche Inhalte

Ähnlich wie 基于yui3的组件开发进阶

YUIconf2010介绍
YUIconf2010介绍YUIconf2010介绍
YUIconf2010介绍ling yu
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component developmentjexchan
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
Yui3简介
Yui3简介Yui3简介
Yui3简介jay li
 
前端杂乱分享
前端杂乱分享前端杂乱分享
前端杂乱分享shyboyzk
 
JavaScript Event - 圆业
JavaScript Event - 圆业JavaScript Event - 圆业
JavaScript Event - 圆业taobao.com
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非Tony Deng
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当裕波 周
 
YUI ─ 阿大
YUI ─ 阿大YUI ─ 阿大
YUI ─ 阿大taobao.com
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hackingMike Ching
 
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四yiditushe
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构fangdeng
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap AdvanceMy own sweet home!
 

Ähnlich wie 基于yui3的组件开发进阶 (20)

Chinese hans
Chinese hansChinese hans
Chinese hans
 
testing leads fix for ppt2
testing leads fix for ppt2testing leads fix for ppt2
testing leads fix for ppt2
 
YUIconf2010介绍
YUIconf2010介绍YUIconf2010介绍
YUIconf2010介绍
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component development
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
Yui3简介
Yui3简介Yui3简介
Yui3简介
 
前端杂乱分享
前端杂乱分享前端杂乱分享
前端杂乱分享
 
JavaScript Event - 圆业
JavaScript Event - 圆业JavaScript Event - 圆业
JavaScript Event - 圆业
 
YUI 3 菜鳥救星
YUI 3 菜鳥救星YUI 3 菜鳥救星
YUI 3 菜鳥救星
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非
 
Dom 事件
Dom 事件Dom 事件
Dom 事件
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
 
I os 01
I os 01I os 01
I os 01
 
YUI ─ 阿大
YUI ─ 阿大YUI ─ 阿大
YUI ─ 阿大
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hacking
 
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
Banquet 52
Banquet 52Banquet 52
Banquet 52
 
行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance
 

Mehr von jay li

犀牛书第六版
犀牛书第六版犀牛书第六版
犀牛书第六版jay li
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践jay li
 
Jswebapps
JswebappsJswebapps
Jswebappsjay li
 
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript潜力无限的编程语言Javascript
潜力无限的编程语言Javascriptjay li
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Designjay li
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器jay li
 
HTML/CSS/JS基础
HTML/CSS/JS基础HTML/CSS/JS基础
HTML/CSS/JS基础jay li
 
淘宝前端技术巡礼
淘宝前端技术巡礼淘宝前端技术巡礼
淘宝前端技术巡礼jay li
 
F2e security
F2e securityF2e security
F2e securityjay li
 
中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟jay li
 
卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎jay li
 
编码大全 拔赤
编码大全 拔赤编码大全 拔赤
编码大全 拔赤jay li
 
小控件、大学问
小控件、大学问小控件、大学问
小控件、大学问jay li
 
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developerjay li
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoloadjay li
 
Html5form
Html5formHtml5form
Html5formjay li
 
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkitjay li
 
新业务新员工培训 Banner设计
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计jay li
 
夏之 专题设计
夏之 专题设计夏之 专题设计
夏之 专题设计jay li
 

Mehr von jay li (20)

犀牛书第六版
犀牛书第六版犀牛书第六版
犀牛书第六版
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
 
Jswebapps
JswebappsJswebapps
Jswebapps
 
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
 
HTML/CSS/JS基础
HTML/CSS/JS基础HTML/CSS/JS基础
HTML/CSS/JS基础
 
淘宝前端技术巡礼
淘宝前端技术巡礼淘宝前端技术巡礼
淘宝前端技术巡礼
 
F2e security
F2e securityF2e security
F2e security
 
中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟
 
卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎
 
编码大全 拔赤
编码大全 拔赤编码大全 拔赤
编码大全 拔赤
 
小控件、大学问
小控件、大学问小控件、大学问
小控件、大学问
 
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developer
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 
Html5form
Html5formHtml5form
Html5form
 
Slide
SlideSlide
Slide
 
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkit
 
新业务新员工培训 Banner设计
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计
 
夏之 专题设计
夏之 专题设计夏之 专题设计
夏之 专题设计
 

基于yui3的组件开发进阶