84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
有一段代码比较疑惑
var clickEventType=((document.ontouchstart!==null)?'click':'touchstart');
如果说 document.ontouchstart!==null,那说明 touchstart 是有的,那应该这样是:
document.ontouchstart!==null
var clickEventType=((document.ontouchstart!==null)?'touchstart':'click')
为什么是上面那种写法呢?
如果写成
var clickEventType=((typeof document.ontouchstart ==="undefined")?'click':'touchstart')
你就明白了,ontoucstart 是doucment对象的一个属性,但是ontouchstart 指向函数的的一个引用,也就是ontouchstart指向一个对象,未指向时,ontouchstart 需要一个初始值 ,这个初始值是null,如果支持touchstart事件,那ontouchstart初始值设为null ,所以是这样的写法
ontoucstart
doucment
ontouchstart
null
touchstart
document.ontouchstart == null;
这说明当前浏览器是支持ontouchstart的,因为如果不支持,document.ontouchstart的值是undefined,再者document.ontouchstart没有被绑定事件的情况下就是等于null, 所以你才可以这样使用document.ontouchstart = function(){};
document.ontouchstart
undefined
document.ontouchstart = function(){};
初始值就是Null,如果不等于null,可以说不支持
document.ontouchstart !== null;
如果写成
你就明白了,
ontoucstart
是doucment
对象的一个属性,但是ontouchstart
指向函数的的一个引用,也就是ontouchstart
指向一个对象,未指向时,ontouchstart
需要一个初始值 ,这个初始值是null
,如果支持touchstart
事件,那ontouchstart初始值设为null
,所以是这样的写法这说明当前浏览器是支持ontouchstart的,因为如果不支持,
document.ontouchstart
的值是undefined
,再者
document.ontouchstart
没有被绑定事件的情况下就是等于null, 所以你才可以这样使用document.ontouchstart = function(){};
初始值就是Null,如果不等于null,可以说不支持