麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

jQuery阻止事件冒泡具體實現

2019-11-20 21:54:12
字體:
來源:轉載
供稿:網友

下面是html代碼部分:

復制代碼 代碼如下:

<body>
<div id="content">
    外層div元素
    <span>內層span元素</span>
    外層div元素
</div>

<div id="msg"></div>
</body>

對應的jQuery代碼如下:

復制代碼 代碼如下:

<script type="text/javascript">
$(function(){
    // 為span元素綁定click事件
    $('span').bind("click",function(){
        var txt = $('#msg').html() + "<p>內層span元素被點擊.<p/>";//獲取html信息
        $('#msg').html(txt);// 設置html信息
    });
    // 為div元素綁定click事件
    $('#content').bind("click",function(){
        var txt = $('#msg').html() + "<p>外層div元素被點擊.<p/>";
        $('#msg').html(txt);
    });
    // 為body元素綁定click事件
    $("body").bind("click",function(){
        var txt = $('#msg').html() + "<p>body元素被點擊.<p/>";
        $('#msg').html(txt);
    });
})
</script>

當點擊span時,會觸發div與body 的點擊事件。點擊div時會觸發body的點擊事件。

如何防止這種冒泡事件發生呢?

修改如下:

復制代碼 代碼如下:

<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>

event.stopPropagation(); // 阻止事件冒泡

有時候點擊提交按鈕會有一些默認事件。比如跳轉到別的界面。但是如果沒有通過驗證的話,就不應該跳轉。這時候可以通過設置event.preventDefault(); //阻止默認行為 ( 表單提交 )。

下面是案例:

復制代碼 代碼如下:

<script type="text/javascript">
$(function(){
   $("#sub").bind("click",function(event){
         var username = $("#username").val();  //獲取元素的值,val() 方法返回或設置被選元素的值。
         if(username==""){     //判斷值是否為空
             $("#msg").html("<p>文本框的值不能為空.</p>");  //提示信息
             event.preventDefault();  //阻止默認行為 ( 表單提交 )
         }
   })
})
</script>

html部分:

復制代碼 代碼如下:

<body>
<form action="test.html">
用戶名:<input type="text" id="username" />
<br/>
<input type="submit" value="提交" id="sub"/>
</form>

<div id="msg"></div>
</body>

還有一種防止默認行為的方法就是return false。效果一樣。

代碼如下:

復制代碼 代碼如下:

<script type="text/javascript">
$(function(){
   $("#sub").bind("click",function(event){
         var username = $("#username").val();  //獲取元素的值
         if(username==""){     //判斷值是否為空
             $("#msg").html("<p>文本框的值不能為空.</p>");  //提示信息
             return false;
         }
   })
})
</script>

同理,上面的冒泡事件也可以通過return false來處理。

復制代碼 代碼如下:

<script type="text/javascript">
$(function(){
       // 為span元素綁定click事件
    $('span').bind("click",function(event){
        var txt = $('#msg').html() + "<p>內層span元素被點擊.<p/>";
        $('#msg').html(txt);
        return false;
    });
    // 為div元素綁定click事件
    $('#content').bind("click",function(event){
        var txt = $('#msg').html() + "<p>外層div元素被點擊.<p/>";
        $('#msg').html(txt);
        return false;
    });
    // 為body元素綁定click事件
    $("body").bind("click",function(){
        var txt = $('#msg').html() + "<p>body元素被點擊.<p/>";
        $('#msg').html(txt);
    });
})
</script>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九草网| omofun 动漫在线观看 | 九九爱视频| 国产精品视频专区 | 91精品国产九九九久久久亚洲 | 在线成人免费视频 | 久久99国产伦子精品免费 | 黑人日比| 国产精品成人一区二区三区电影毛片 | 亚洲小视频在线播放 | 精品国产乱码久久久久久久 | 久久我不卡 | 最新av在线免费观看 | 99欧美精品| 亚洲视色 | 国产精品久久久久久久久久久久午夜 | 97视频| 免费久久久 | 亚洲视频精品在线 | 少妇一级淫片高潮流水电影 | 国产亚洲美女精品久久久2020 | 久久一本日日摸夜夜添 | 国产精品久久久久久久久久 | 国产午夜亚洲精品理论片大丰影院 | 日本在线播放一区二区 | 国产成人精品区 | 中文字幕免费播放 | 国产一区视频免费观看 | 老师你怎么会在这第2季出现 | 久久噜噜噜精品国产亚洲综合 | 久久综合久久精品 | 竹内纱里奈和大战黑人 | 久久久久中精品中文字幕19 | 国产一区二区三区精品在线观看 | 欧美一级黄色网 | 天天舔夜夜操 | 羞羞漫画无遮挡观看 | 精品一区二区三区毛片 | 九色成人在线 | 国内精品国产三级国产a久久 | 永久av在线免费观看 |