国产探花免费观看_亚洲丰满少妇自慰呻吟_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綁定事件后引發的事件冒泡問題及解決辦法,希望能夠幫助到大家!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上蔡县| 永安市| 柞水县| 聂荣县| 陵水| 伊吾县| 马山县| 怀仁县| 巴青县| 峨边| 商都县| 叙永县| 峨山| 灌阳县| 丰都县| 广德县| 南通市| 牙克石市| 景洪市| 都江堰市| 如皋市| 霍山县| 双流县| 峨山| 巴彦县| 同心县| 萝北县| 顺义区| 湘阴县| 东乡族自治县| 靖西县| 永胜县| 南召县| 荆州市| 武平县| 镇巴县| 宝应县| 曲松县| 离岛区| 沭阳县| 伊春市|