简单说下事件委托与阻止冒泡
html:
<ul class=\"clearfix\" data-type=\"cityPick\"> <li class=\"active_sort_opts\" data-id=\"0\">全部</li> <li data-id=\"88\">纽约</li> <li data-id=\"119\">洛杉矶</li> <li data-id=\"138\">拉斯维加斯</li> <li data-id=\"84\">夏威夷</li> <li data-id=\"120\">旧金山</li> <li data-id=\"105\">奥兰多</li> <li data-id=\"118\">西雅图</li> </ul>
js:
$(\"ul[data-type=\'cityPick\']\").on(\'click\',function(){ alert(\"父元素ul被点击\"); }); $(\"ul[data-type=\'cityPick\']\").on(\'click\',\'li\',function(){ alert(\"子元素li被点击\"); });
当点击具体的li元素时,发现ul的事件也被触发了,这是我们不想看到的。
解决:
$(\"ul[data-type=\'cityPick\']\").on(\'click\',function(){ alert(\"父元素ul被点击\"); }); $(\"ul[data-type=\'cityPick\']\").on(\'click\',\'li\',function(e){ e.stopPropagation();//阻止冒泡 alert(\"子元素li被点击\"); });
加一句阻止冒泡即可。
本文地址:https://www.stayed.cn/item/4763
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我