一.目的
两个链接,一个可以转向指定页面,一个点击之后下方出现一行文字并且不转向任何页面。
二.途径
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>
?注意点见代码中的注释
?