当前位置: 代码迷 >> Web前端 >> YUI学习札记(二)简单的DOM事件(2)
  详细解决方案

YUI学习札记(二)简单的DOM事件(2)

热度:119   发布时间:2013-04-05 10:24:33.0
YUI学习笔记(二)简单的DOM事件(2)

一.目的

两个链接,一个可以转向指定页面,一个点击之后下方出现一行文字并且不转向任何页面。

二.途径

YUI的DOM操作以及preventDefault() 事件的运用。

三.代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<!--下面的语句是对YUI种子文件的引用-->
<script src="http://yui.yahooapis.com/3.9.0/build/yui/yui-min.js"></script>
<script>
YUI().use('node', function (Y) 
{
    var helloWorld = 
    	function(e) 
    	{
        	e.target.setHTML("<p>Hello World!</p>");
        	e.target.setStyle('background-color', 'orange');
        	e.target.setStyle('margin-top','40px');
		};//函数helloword的声明
    var myDiv = Y.one("#container");//Y.one()元素选择器,匹配元素为id="container"的元素
    myDiv.on("click", helloWorld);//用Node类的on方法对myDiv监听事件click,触发函数helloword
    
	var interceptLink = 
		function(e) 
		{
			e.preventDefault();
			Y.one('.message').setStyle('visibility', 'visible');
 		};
	Y.one('#secondA').on("click", interceptLink);
	//当第二个链接被点击,会显示一条消息,而不是导航离开当前页面。
	//传递到事件处理程序的事件对象不是实际的浏览器的事件对象,而是一个假象。
	//这个假象支持preventDefault方法,用来取消浏览器的行为,如锚链接加载新页。
});
</script>
</head>
<body>
    <div id="container" style="width: 1000px; height: 100px; background-color: pink;">
        <p style="margin-top: 40px; padding-top: 40px; padding-left: 40px;">Click for Hello World test.</p>
    </div>
    <p><a href="http://yuilibrary.com/" id="firstA">The YUI Library. (Link navigates away from page.)</a></p>
	<p><a href="http://yuilibrary.com/" id="secondA">The YUI Library. (Link's default behavior is suppressed.)</a></p>
	 <div class="message" style="visibility:hidden;">
        When you clicked on the second link, *preventDefault* was called, so it did not navigate away from the page.
    </div>
</body>
</html>

?注意点见代码中的注释

?

  相关解决方案