关于if (e && e.stopPropagation)求教

灵魂之音 2013-07-01 01:59:33
e && e.stopPropagation

①这里的e是如何判断真假的,e==0或者是1吗?

②(e && e.stopPropagation)括号里的e.stopPropagation函数为什么没有小括号?



<div onclick="showMsg(this,event)" id="outSide" style="width:100px; height:100px; background:#000; padding:50px">
<div onclick="showMsg(this,event)" id="inSide" style="width:100px; height:100px; background:#CCC"></div>
</div>
<script type="text/javascript">
//阻止事件冒泡后,你点击灰色盒子,整个过程只弹一次对话框了(注意与默认情况对比)
function showMsg(obj,e)
{
alert(obj.id);
stopBubble(e)
}

//阻止事件冒泡函数
function stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
</script>
...全文
530 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
灵魂之音 2013-07-03
  • 打赏
  • 举报
回复
知道了,谢谢楼上的各位。
程老师2088 2013-07-03
  • 打赏
  • 举报
回复
楼主,stopPropagation是属性名,stopPropagation()是去执行这个函数,两者不一样的,前者只是一个名词,告诉你有没有这个东西,后者是一个动作,是要执行的
S117 2013-07-03
  • 打赏
  • 举报
回复
e.stopPropagation的意思是e中是否有stopPropagation属性,而e.stopPropagation()表示调用e中的stopPropagation()方法,在js中()表示方法调用如果写成if (e && e.stopPropagation()),则表示判断e是否不为null,undefined,0或者其他可以转换为false的值,并且e.stopPropagation()的执行结果是否为false或者可以转换为false的其他值
hehe123456789 2013-07-02
  • 打赏
  • 举报
回复
引用 2 楼 u011162470 的回复:
[quote=引用 1 楼 functionsub 的回复:] 1.e只要不是undefined或者null或者0,他就可以当true来处理 2.e.stopPropagation是判断e是否有stopPropagation这个属性,原理同上 结合起来就是: 如果e有值,并且e有stopPropagation这个属性,则调用e.stopPropagation() 否则执行window.event.cancelBubble=true
if (e && e.stopPropagation()) 为什么不是这样[/quote] 如果是这样的话,如果e.stopPropagation不存在的话会抛出异常,如果存在的话 e.stopPropagation()会执行stopPropagation这个函数
灵魂之音 2013-07-01
  • 打赏
  • 举报
回复
引用 1 楼 functionsub 的回复:
1.e只要不是undefined或者null或者0,他就可以当true来处理 2.e.stopPropagation是判断e是否有stopPropagation这个属性,原理同上 结合起来就是: 如果e有值,并且e有stopPropagation这个属性,则调用e.stopPropagation() 否则执行window.event.cancelBubble=true
if (e && e.stopPropagation()) 为什么不是这样
functionsub 2013-07-01
  • 打赏
  • 举报
回复
1.e只要不是undefined或者null或者0,他就可以当true来处理 2.e.stopPropagation是判断e是否有stopPropagation这个属性,原理同上 结合起来就是: 如果e有值,并且e有stopPropagation这个属性,则调用e.stopPropagation() 否则执行window.event.cancelBubble=true

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧