首页 > 代码库 > jquery中的事件进阶

jquery中的事件进阶

1.事件冒泡

<!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" /><title>Panel</title><style type="text/css">*{margin:0;padding:0;}    body { font-size: 13px; line-height: 130%; padding: 60px; }#content { width: 220px; border: 1px solid #0050D0;background: #96E555 }span { width: 200px; margin: 10px; background: #666666; cursor: pointer;color:white;display:block;}p {width:200px;background:#888;color:white;height:16px;}</style><script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script><script type="text/javascript">$(function(){       // 为span元素绑定click事件    $(span).bind("click",function(event){        var txt = $(#msg).html() + "<p>内层span元素被点击.<p/>";        $(#msg).html(txt);        event.stopPropagation();    //  阻止事件冒泡    });    // 为div元素绑定click事件    $(#content).bind("click",function(event){        var txt = $(#msg).html() + "<p>外层div元素被点击.<p/>";        $(#msg).html(txt);        event.stopPropagation();    //  阻止事件冒泡    });    // 为body元素绑定click事件    $("body").bind("click",function(){        var txt = $(#msg).html() + "<p>body元素被点击.<p/>";        $(#msg).html(txt);    });})</script></head><body><div id="content">    外层div元素    <span>内层span元素</span>    外层div元素</div><div id="msg"></div></body></html>

2.阻止事件的默认行为

<!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" /><title></title><script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script><script type="text/javascript">$(function(){   $("#sub").bind("click",function(event){         var username = $("#username").val();  //获取元素的值         if(username==""){     //判断值是否为空             $("#msg").html("<p>文本框的值不能为空.</p>");  //提示信息             event.preventDefault();  //阻止默认行为 ( 表单提交 )         }   })})</script></head><body><form action="test.html">用户名:<input type="text" id="username" /><br/><input type="submit" value="提交" id="sub"/></form><div id="msg"></div></body></html>

实际上都可以用return false;来解决

时间对象的属性

1,event.type()

<head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--   引入jQuery --><script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script> <script>$(function(){    $("a").click(function(event) {      alert(event.type);//获取事件类型      return false;//阻止链接跳转    });})  </script></head><body><a href=‘http://google.com‘>click me .</a></body></html>

技术分享

2.event.target();

    $("a[href=http://google.com]").click(function(event) {      alert(event.target.href);//获取触发事件的<a>元素的href属性值      return false;//阻止链接跳转    });

 

jquery中的事件进阶