zoukankan      html  css  js  c++  java
  • 带你学习JQuery:事件冒泡和阻止默认行为

     

    首先说什么是冒泡呢,简单的意思就是,你本来想只触发一个时间,但是实际上却出发了N个事件。

    举例来说,有一个元素,如Span,你绑定了一个Click函数,你又为Div绑定了一个Click函数,而这个Span就在Div中,当你点击

    Span时,同时就会触发Span和Div的Click函数。这就是冒泡。

    那么怎么阻止冒泡行为呢

    $('span').bind("click",function(event){
      var txt = $('#show).html() + "<p>内层span元素被点击.<p/>";
      $('#show').html(txt);
      event.stopPropagation();    //  阻止事件冒泡
     });

    可见很简单,就是在绑定的函数结尾加上evert.stopPropagation()翻译成中文就是阻止传播、泛滥

    阻止默认行为:

    <!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="http://www.cnblogs.com/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==""){     //判断值是否为空
           $("#show").html("<p>文本框的值不能为空.</p>");  //提示信息
           event.preventDefault();  //阻止默认行为 ( 表单提交 )
       }
       })
    })
    </script>
    </head>
    <body>
    <form action="test1.html">
    用户名:<input type="text" id="username" />
    <br/>
    <input type="submit" value="提交" id="sub"/>
    </form>

    <div id="show"></div>
    </body>
    </html>

    可见event.preventDefaule()方法确实阻止了默认行为即提交表单,但是如果有冒泡事件,enent.preventDeafult()方法是不够的还要调用

    event.stopPropagation()方法,简单的替代方式就是return false;两个都可以阻止掉。也就是上面的所有 event.stopPropagation();    和

    event.stopPropagation()方法都可以用return false取代。

  • 相关阅读:
    MVC 数据库增删改查(2) 视图
    MVC 数据库增删改查(1)
    委托的4种写法
    wpf 多线程操作(2)
    wpf 多线程操作例(1)
    网络抓取邮箱
    wpf 点击新建弹出新的窗口
    wpf 数据绑定 联系
    wpf 在listview里添加数据
    面向对象:抽象基类,接口
  • 原文地址:https://www.cnblogs.com/newsouls/p/2376026.html
Copyright © 2011-2022 走看看