js var event = window.event || e; var ele = event.srcElement || event.target; 这两句什么意思?

 我来答
郑郑某
推荐于2017-10-12 · TA获得超过574个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:115万
展开全部
  js中,逻辑操作是用的逻辑短路机制。
  || 表示或,左右两个运算元有一个为true时结果为true。而逻辑短路的意思,就是当第一个运算元为true时,第二个运算元不需要判断了,因为也一定是true。而当第一个运算元为false的时候,第二个运算元同样也不需要判断,因为第二个为true时整体就为true,第二个为false时整体也是false。
  在js中,逻辑短路的应用稍微拓展了。当运算元为true时,就将这个运算元赋值给变量。举第一条语句为例。当window.event为true,也就是window.event存在时(js中,未定义变量默认为undefined,表现为false),就将window.event赋值给前面的var event。而如果window.event不存在,则将第二个运算元,也就是||后面的e赋值给event。
  这段代码应该是事件处理函数里的,兼容IE。因为在IE里,event必须加上作用域window,同时IE里获取发生事件的DOM节点用的是event.srcElement,其他浏览器用的是event.target。
  讲的有点晦涩,不懂可以追问。
追问
有点明白,又有点糊涂了。为什么要“window.event|| e“,e是这个里面的$box.onclick = function(e),后面还有var _className = ele.className是什么意思?
_____疯子Crazy
2018-10-20
知道答主
回答量:1
采纳率:0%
帮助的人:815
展开全部

楼上说的是对的,这主要是用来兼用ie用的:

比如:

let btn = document.getElementById('my-btn')
btn.onclick({function(event){
    //注意! 这里的event在ie中,是不认识的,ie只认识window.event
    var event = window.event || e  //所以通过这种方式来兼容ie
})

同理 event.srcElement,我推荐你可以去看看JavaScript高级程序设计第十三章的事件对象部分,希望可以帮到你。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式