`
wangxin0072000
  • 浏览: 86758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Yahoo! UI(YUI) 学习笔记 之 EVENT and DOM

阅读更多

    小弟最近学习javascript,继而学习了一个js类库---YUI。

先总体说一下YUI的类库。YUI是一个基于事件和DOM的库。所以要学习它必须首先学习EVENT和DOM两个主要的组件。

1.event 库

yui捕捉事件是依赖于event组件。而几乎所有的web操作都是基于事件的。所以要想使用yui最好先看event库。

首先从一个简单的例子开始。我们的需求是:点击一个div区域。返回一个对话框显示HelloWorld。根据需求我们发现这个需求很简单,就是处理一个click事件。处理分为一下3步:

1导入依赖包

js 代码
  1. <script type="text/javascript" src="../../build/yahoo/yahoo.js"></script>   
  2. <script type="text/javascript" src="../../build/event/event.js"></script>   

2编写响应事件的function

js 代码
  1. //A function that pops up a "Hello World" alert:   
  2. var helloWorld = function(e) {   
  3.     alert("Hello World!");   
  4. }  

3处理事件(div 区域的id是container)

js 代码
  1. <!---->  
  2. YAHOO.util.Event.addListener("container""click", helloWorld);   

 

使用这个代码就可以实现了事件响应,但是假如我希望在触发这个事件之前先判断这个区域是否包含名为test的class呢,比如

这个div为:

js 代码
  1. <div "container" class="yui test">  </div>  

 这时我们就要向web中导入dom组件了

js 代码
  1. <script type="text/javascript" src="../../build/dom/dom.js"></script>   

之后再修改click的响应function

  1. var helloWorld = function(e) {       
  2. if(YAHOO.util.Dom.hasClass('container', 'test'))         
  3. alert("Hello World!");       
  4. }   

 这样就基本实现了我们的功能。也基本了解了yui的处理机制。它的处理机制就是根据你的不同需求调用不同的组件,在每个组件中都有一个全局的对象:YAHOO.util.XXX 其中XXX就是你调用的组件,而组件中的方法我们可以从帮助文件中方便的获得。

分享到:
评论
3 楼 wuxing429 2011-01-20  
id="container  改成 class=container
2 楼 wuliupo 2009-02-18  
maoweiwer 写道

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;script type="text/javascript" src="../../../javascript/yui/build/event/event.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="../../../javascript/yui/build/yahoo/yahoo.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; //A function that pops up a "Hello World" alert:&nbsp;&nbsp;&nbsp; var helloWorld = function(e) {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert("Hello World!");&nbsp;&nbsp;&nbsp; } YAHOO.util.Event.addListener("container", "click", helloWorld); &lt;/script&gt; &lt;title&gt;yahoo UI&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="container" style="background:#999999; line-height:50px; width:300px; text-align:center;"&gt;123&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; ----------------------------------------------- 帮我看一下我的代码,为什么我的不行呀..


是不是这样的:
../../../javascript/yui/build/event/event.js
../../../javascript/yui/build/yahoo/yahoo.js
确认上面两个js文件存在,并且yahoo.js在event.js之前引用,你的代码中引用先后顺序错了。

HTML代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../../../javascript/yui/build/yahoo/yahoo.js"></script>
<script type="text/javascript" src="../../../javascript/yui/build/event/event.js"></script>
<script type="text/javascript">
//A function that pops up a "Hello World" alert:
var helloWorld = function(e) {
    alert("Hello World!");
}

YAHOO.util.Event.addListener("container", "click", helloWorld);
</script>
<title>yahoo UI</title>
</head>

<body>
<div id="container" style="background:#999999; line-height:50px; width:300px; text-align:center;">123</div>
</body>
</html>
1 楼 maoweiwer 2007-11-02  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../../../javascript/yui/build/event/event.js"></script>
<script type="text/javascript" src="../../../javascript/yui/build/yahoo/yahoo.js"></script>
<script type="text/javascript">
//A function that pops up a "Hello World" alert:   
var helloWorld = function(e) {   
    alert("Hello World!");   
}

YAHOO.util.Event.addListener("container", "click", helloWorld);
</script>
<title>yahoo UI</title>
</head>

<body>
<div id="container" style="background:#999999; line-height:50px; width:300px; text-align:center;">123</div>
</body>
</html>

-----------------------------------------------
帮我看一下我的代码,为什么我的不行呀..

相关推荐

    yui_2.9.0前端UI

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

    Yahoo UI Library

    Yahoo! User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心的CSS文件。yui中的所有组件已经以开源的形式...

    yahoo yui UI libaray 2.3.1

    yahoo yui UI libaray 2.3.1 yahoo yui UI libaray 2.3.1 yahoo yui UI libaray 2.3.1 yahoo yui UI libaray 2.3.1

    YahooUI Library

    Yahoo! User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心 的CSS文件。yui中的所有组件已经以开源的形式...

    Yui_ext 学习笔记

    Yui_ext 学习笔记 MSN:zhoujianguo_leo@hotmail.com

    YUI3 完整包

    Yahoo! UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。它也包含了许多 CSS 资源。

    yahoo ui library(简称yui)搞WEB开发的朋友值得看一看,充分发挥出了javascript的功能

    Yahoo! User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序...YahooUI,搞WEB开发的朋友值得看一看,充分发挥出了javascript的功能

    雅虎 用户接口库YUI

    YUI资料 雅虎 用户接口库 中文说明及如何使用学习 Yui组件分成2类:工具包和控件库 Yui 工具包 Yui 工具包利用DOM脚本来简化浏览器内的开发(in-browser devolvement),使用DHTML和AJAX的特性开发所有的Web程序。...

    yahoo yui 3.3.0

    这些事最新发布的yahoo yui 3.3.0 Yahoo! User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心的CSS文件。...

    YUI库2.8.2r1.zip

    UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。它也包含了许多 CSS 资源。使用授权为 BSD许可证 .解压后里面用说明和使用方法...

    yahoo yui 实例教程

    利用Yahoo YUI库做的一个TREE实例,很详细的阐述了YUI的使用原理

    YUICompressor.NET:Yahoo!的Java YUICompressor移植到.NET

    UI库的YUI Compressor Java项目。 该项目的目的是在压缩任何Javascript和级联样式表之前将其压缩到与原始源完全一样的有效水平。 可通过NuGet获得 包裹名称: YUICompressor.NET CLI: install-package YUI...

    Yahoo YUI 插件库

    非常有用的YUI插件,包括所有的Yahoo YUI插件库。

    yui_0.11.4.zip

    User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX....

    雅虎YUI组建

    雅虎YUI组件,内附详细实例

    Practical JavaScript, DOM Scripting and Ajax Projects

    author Frank Zammetti covers JavaScript best practices, Ajax techniques, and some of the most popular JavaScript libraries, such as Prototype, Script.aculo.us, and the Yahoo YUI. One of the main ...

    yui_3.0.0(雅虎官方)

    yui_3.0.0.zip,来自雅虎官方

    YUI v3.17.2 RC1.zip

    UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。它也包含了许多 CSS 资源。使用授权为 BSD许可证   工具 动画 协助达成位置...

    Yahoo.Yui.Compressor.dll

    Yahoo.Yui.Compressor.dll文件下载,解决找不到Yahoo.Yui.Compressor.dll的问题 ... 一、如果在运行某软件或编译程序时提示缺少、找不到Yahoo.Yui.Compressor.dll等类似提示,您可将从脚本之家下载来的Yahoo.

    为Yahoo! UI Extensions Grid增加内置的可编辑器

    它给你一个基本的TEXT FIELD,一些CHECKBOXS或者是Select fields,这导致了你一边单击某个字段在编辑,另一边厢插入一个FORM到这个单元格之中,不知不觉地,会出现越来越多编辑过的“脚印footprint”,尤其是IE,在很...

Global site tag (gtag.js) - Google Analytics