`
xiaomogu
  • 浏览: 51442 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
YUI 3 学习笔记(1)-YUI Global对象

YUI模块是YUI3中的单一核心,所有需要使用YUI3的页面都必须包含该
模块,该模块提供加载功能,可以使用该功能动态加载指定模块,其依
赖模块会被自动加载,所以YUI模块可以看成YUI的一个种子。

YUI模块创建了一个全局对象:YUI,一个页面可以共享一个YUI实例,也
可以使用多个实例。

1 要使用YUI全局对象,只需添加如下引用:
Html代码

2 如果你想要使用拖放和动画功能,可以使用use()方法加载:
Javascript代码  

该方法的最后一个参数是一个回调函数,该函数在完成所有指定模块的加载
后被调用,调用时传递一个参数:一个YUI的实例。

3 YUI全局对象有一个Lang对象,其中没有设什么新鲜东西,就是javascript语言
本身的一些功能,但是在这里做了一个统一以便于使用:
Javascript代码




YUI 3 学习笔记(2)- Node
Node是用来操作DOM node的工具,实际上每一个Node实例都代表着一个DOM node,每一
个NodeList都代表着一组DOM node.
从YUI2.x到YUI3.0相关的api发生了一些变化,具体可以参见本文的最后部分。
1. 要使用Node,首先要引入YUI3的种子文件:
Html代码 

然后加载相应模块:
Javascript代码 


2. 获得Node
  可以使用YUI.one()获取Node,该方法的参数可以是一个Node,也可以是一个选择器(selector),
在使用选择器时,返回第一个匹配的元素。默认情况下css3选择器不被支持,如果要使用,需要
加载“selector-css3”模块。关于css3 selector可以参见这里:
http://www.w3.org/TR/css3-selectors
以下是使用YUI.one()的例子:
Javascript代码 

3. 访问Node属性
   可以使用Node的set,get方法访问Node的属性,需要注意的是如果返回节点的话返回的是
YUI Node而不是DOM node,这一点在其他地方也要注意。
以下是相关的例子:
Javascript代码 

4. 事件监听
  可以用on方法添加事件监听器:
Javascript代码
  
5. DOM方法
  Y.Node提供了所有DOM node的原有方法
 

6. NodeList的使用
  NodeList提供了与Node相似的API,但是它的处理时对所有NodeList中的所有Node作用的。
  例如如下代码对demo的所有子元素添加'bar'类:
Javascript代码


7. 查找
  Node提供one,all,test方法分别实现查找第一个匹配元素,查找所有匹配元素,测试
是否存在匹配元素的功能

8. YUI 2.x和YUI 3.x的对应表
   YUI2.x的Node功能是由YAHOO.util.Dom提供的,其与YUI3.0的对应关系如下:
(图太大•在下面•••)




YUI 3 学习笔记(3)- Event

YUI的Event包可以用来操纵DOM事件,也可以自定义事件。

1. 要使用Event,首先要引入YUI3的种子文件:
Html代码 

然后加载相应模块:
Javascript代码 




2. 设置事件响应函数:on()
有两个on方法,一个是YUI的,一个是Node的

Y.on("click", handleClick, "#foo p") 设置元素"#foo p"的click事件处理函数为handleClick。
foo.on("click", handleClick) 的作用与上面的一样

对于YUI的on方法,参数如下:
1) 事件名。关于各事件在主要浏览器中的兼容性,可以参见这里:
http://www.quirksmode.org/dom/events/index.html
2) 事件处理句柄
3) 元素,可以是多个,多个的写法是这样:["#foo p", "#bar"]
4) 上下文对象,即事件处理函数中的this,如果忽略,就是target元素的Node
5) 参数,可以有多个,按顺序为事件处理函数中event之后的参数


3. 移除事件响应函数
有三种方式:
1) 在事件名前加前缀,然后用YUI的detach移除
2) 保存事件句柄,然后通过该句柄移除
3) 用YUI的detach,指定事件名、处理函数和元素
Javascript代码

另外,Event.purgeElement可以清理所有通过on添加的事件处理函数,而且可以
设定是否对子元素递归清理。


4.模拟鼠标事件
可以通过Node.simulate()模拟鼠标事件,可以模拟7种鼠标事件:
    * click
    * dblclick
    * mousedown
    * mouseup
    * mouseover
    * mouseout
    * mousemove
同时可以指定一些附加信息,例如:
Javascript代码 

模拟按下Shift键的click事件,这些附加信息包括:
    * detail - click的次数.
    * screenX/screenY
    * clientX/clientY
    * ctrlKey/altKey/shiftKey/metaKey
    * button - 0:左,1:右, 2:中
    * relatedTarget


5. 模拟键盘事件
  可以模拟以下事件:
    * keyup
    * keydown
    * keypress
keyup和keydown必须指定keyCode,keypress必须指定charCode,另外还可以
指定ctrlKey, altKey, shiftKey和metaKey,以下是几个例子:
Javascript代码


6. available(onAvailable)和contentready(onContentReady)事件
  available事件在一个元素刚刚出现在DOM树中时触发。
  contentready事件在一个元素和它的下一个元素都可以用getElementById获得
时触发,以保证该元素已加载完毕(除了动态加载的内容以外)


7. domready(onDOMReady)事件
  domready事件在DOM树构建完成时触发,有可能是在图像加载完毕以前。


8. delegate方法
  事件代理(Event delegate)机制可以在父元素处唯一绑定一个listener监听该
父元素的多个子元素处发生的事件,以如下的html为例:

以下这段代码将一listener绑定到"container",却监听着其3个子元素(<li>)处的
click事件:

9. focus和blur事件
DOM的focus和blur事件是不做冒泡传递的,但YUI的Event utility的focus和blur事件
却可以,因此可以实现集中的事件处理。
以下是一段示例代码:

其中"#toolbar"是一个包含3个按钮的<div>,如下:


10. mouseenter和mouseleave事件
YUI也提供mouseenter和mouseleave事件,代码如下所示:

11. 自定义事件
可以使用on实现简单的自定义事件。注册listener是这样的:
 
激发这个事件是这样的:

另外可以用augment将一对象提升为Event target,用publish定义一个Event,注册listener
还是用on,激发事件还是用fire,下面是示例代码:

(图小的话 自己放大• )

分享到:
评论

相关推荐

    Yui_ext 学习笔记

    【Yui_ext 学习笔记】 Yui_ext 是基于 Yahoo! UI Library (YUI) 的扩展,主要用于构建富客户端的 Web 应用程序。这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 ...

    《YUI使用文档》汉语版的yui学习材料

    《YUI使用文档》汉语版是一份详细的YUI学习材料,它涵盖了这个JavaScript库的核心功能和使用方法。YUI,全称Yahoo! User Interface Library,是Yahoo开发的一个开放源代码的JavaScript库,旨在帮助开发者创建交互式...

    yui3-master.zip

    通过“yui3-master.zip”这个压缩包,开发者不仅可以了解到YUI3的基本架构,还可以通过阅读源码来学习和掌握JavaScript的最佳实践,提升自身的前端开发能力。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。...

    yui.rar 例子

    《深入理解YUI:基于“yui.rar 例子”的解析》 ...学习并掌握YUI,不仅可以提高开发效率,还能为用户提供更优质的交互体验。无论是新手还是经验丰富的开发者,都可以从YUI中获益,打造出更加健壮和高效的Web应用。

    yui 资源包

    《深入理解YUI 3.9.0 r2:界面设计与资源优化》 YUI,全称为Yahoo! User Interface Library,是由雅虎公司开发的一个开源JavaScript库,它旨在简化Web应用程序的构建,特别是对于界面设计和交互效果的实现。在3.9.0...

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

    关于yui的学习

    关于YUI的学习,这是一个关于前端开发框架YUI的深入探讨。YUI,全称为Yahoo! User Interface Library,是由雅虎公司开发并开源的一款JavaScript库,旨在帮助开发者构建高性能、可扩展且易于使用的Web应用程序。YUI的...

    YUI3.6文档及示例

    总之,YUI3.6文档及示例的压缩包是开发者学习和掌握YUI的绝佳资料,无论你是新手还是有经验的开发者,都能从中受益。通过深入研究这个包,你将能够利用YUI的强大功能,创建出高效、美观且用户体验优秀的Web应用。

    【YUI组件】基于YUI的表单验证器

    “源码”标签暗示这个压缩包可能包含了YUI表单验证器的源代码,这使得开发者可以查看、学习和定制验证器的内部工作原理。而“工具”标签则表明这个组件是一种实用的开发辅助工具,可以帮助开发者轻松实现表单验证...

    YUI-EXT使用详解

    通过提供的压缩包文件"ext 2.rar"、"ext教程.rar"和"yui_2.3.1.zip",你可以获得YUI-EXT的源码、文档和示例,进一步学习和研究其使用方法。这些资源将帮助你深入理解如何集成YUI-EXT到项目中,如何创建和配置组件,...

    yui_2.9.0前端UI

    YUI 库,全称Yahoo! UI Library。是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两...

    yahoo3.0 YUI Examples

    【标签】"yahoo3.0 YUI Examples"再次强调了主题,这些标签有助于搜索和分类,便于用户找到相关的YUI学习材料。 【压缩包子文件的文件名称列表】"developer.yahoo.com"可能是指包含YUI 3.0 Examples的源码或文档...

    YAHOO yui2.7 文档+ 代码+例子

    YUI 2.7提供的文档详尽介绍了每个组件的用法,包括API参考、教程和示例代码,对于初学者来说是极好的学习资源。通过文档,开发者可以快速上手,并理解如何将YUI应用到实际项目中。同时,示例代码有助于直观地展示...

    yuicompressor-2.4.8.jar

    《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现...

    YUI3.7.3 最新版本 带API

    8. **API文档**:YUI3.7.3附带的API文档详细阐述了每个模块的功能和用法,是开发者学习和使用YUI的重要参考资料。 9. **响应式设计支持**:YUI3包含了一些工具,如Resize Utility,帮助开发者实现响应式设计,使...

    yui_3.8.1.zip

    学习YUI,首先需要掌握JavaScript基础知识,然后通过官方文档了解YUI的模块化结构和API。官方文档详细且全面,包含了大量的示例代码,便于开发者快速上手。同时,社区资源丰富,有许多优秀的教程和示例项目可供参考...

    YUI.rar_html_javascript YUI_yui_yui javascript

    通过学习和实践这些示例,开发者可以深入了解YUI的功能和用法,提高自己的前端开发技能。 总结来说,YUI是一个强大的JavaScript库,它的强大功能和丰富的组件为开发者带来了极大的便利。通过研究YUI的源码和示例,...

Global site tag (gtag.js) - Google Analytics