国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

深入理解jQuery之防止冒泡事件

2019-11-20 09:56:39
字體:
來源:轉載
供稿:網友

冒泡事件就是點擊子節點,會向上觸發父節點,祖先節點的點擊事件。

下面是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>

以上這篇深入理解jQuery之防止冒泡事件就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连平县| 瓮安县| 工布江达县| 始兴县| 峨山| 尉氏县| 桃园市| 沙洋县| 徐汇区| 商洛市| 遵义市| 买车| 鄄城县| 齐齐哈尔市| 广饶县| 邹城市| 中方县| 襄垣县| 开封县| 扶风县| 莱州市| 宁南县| 原阳县| 广南县| 永年县| 襄汾县| 临桂县| 新乡市| 宜州市| 文昌市| 浮山县| 保德县| 杭锦后旗| 郓城县| 抚宁县| 都江堰市| 兰坪| 同仁县| 静海县| 连城县| 茶陵县|