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

首頁 > 編程 > JavaScript > 正文

jQuery中on綁定事件后引發的事件冒泡問題如何解決

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

用on綁定時,我把子元素的 綁定到 document,而把父元素綁定到上級元素,導致 return false 阻止冒泡無效。

<!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> <title>事件冒泡</title> <script src="jquery-1.7.1.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> $(function () { $(document).on("click","#p1",function(e){ console.log(e.target.tagName); console.log("p1被點擊了"); //e.stopPropagation(); //終止冒泡的方法 return false; }) $("#aa").on("click","#td1",function(e){ console.log(e.target.tagName); console.log("td1被點擊了"); }) $("#aa").on("click","#tr1",function(e){ console.log(e.target.tagName); console.log("tr1被點擊了"); }) $("#aa").on("click","#table1",function(e){ console.log(e.target.tagName); console.log("table1被點擊了"); }) }); </script> </head> <body id="aa"> <table onclick="alert('這是table')"> <tr onclick="alert('這是tr')"> <td onclick="alert('這是td')"> <p onclick="alert('這是p')">段落</p> </td> </tr> </table> <table id="table1"> <tr id="tr1"> <td id="td1"> <p id="p1">你好</p> </td> </tr> </table> </body> </html> 

on方法 將click等事件綁定在document對象上,頁面上任何元素發生的click事件都冒泡到document對象上得到處理。

增加了綁定效率。當事件冒泡到document對象時,檢測事件的target,如果與傳入的選擇符(這里是button)匹配,就觸發事件,否則不觸發。

修改為統一綁定對象后即解決,初步認為是因為 on方法的綁定機制問題。

所以return false 無效。子元素和父元素修改為相同 綁定元素后,問題解決

<!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> <title>事件冒泡</title> <script src="jquery-1.7.1.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> $(function () { $("#aa").on("click","#p1",function(e){ console.log(e.target.tagName); console.log("p1被點擊了"); //e.stopPropagation(); //終止冒泡的方法 return false; }) $("#aa").on("click","#td1",function(e){ console.log(e.target.tagName); console.log("td1被點擊了"); }) $("#aa").on("click","#tr1",function(e){ console.log(e.target.tagName); console.log("tr1被點擊了"); }) $("#aa").on("click","#table1",function(e){ console.log(e.target.tagName); console.log("table1被點擊了"); }) }); </script> </head> <body id="aa"> <table onclick="alert('這是table')"> <tr onclick="alert('這是tr')"> <td onclick="alert('這是td')"> <p onclick="alert('這是p')">段落</p> </td> </tr> </table> <table id="table1"> <tr id="tr1"> <td id="td1"> <p id="p1">你好</p> </td> </tr> </table> </body> </html> 

以上所述是小編給大家介紹的jQuery中on綁定事件后引發的事件冒泡問題及解決辦法,希望能夠幫助到大家!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开江县| 鲜城| 延庆县| 镇巴县| 烟台市| 大连市| 朝阳县| 新绛县| 金沙县| 保德县| 台江县| 蓬安县| 科技| 屏山县| 华蓥市| 十堰市| 南丰县| 正定县| 建水县| 枣强县| 广汉市| 乐昌市| 辽阳县| 安吉县| 连州市| 井陉县| 石河子市| 安西县| 林州市| 青川县| 临沭县| 垫江县| 江口县| 阳谷县| 历史| 鄄城县| 潜江市| 定日县| 方正县| 乐业县| 尼玛县|