javascript - 请教一个关于touchstart事件的小问题
仅有的幸福
仅有的幸福 2017-06-08 11:03:12
0
2
899

有一段代码比较疑惑

var clickEventType=((document.ontouchstart!==null)?'click':'touchstart');

如果说 document.ontouchstart!==null,那说明 touchstart 是有的,那应该这样是:

var clickEventType=((document.ontouchstart!==null)?'touchstart':'click')

为什么是上面那种写法呢?

仅有的幸福
仅有的幸福

全部回复(2)
巴扎黑

如果写成

var clickEventType=((typeof document.ontouchstart ==="undefined")?'click':'touchstart')

你就明白了,ontoucstartdoucment对象的一个属性,但是ontouchstart 指向函数的的一个引用,也就是ontouchstart指向一个对象,未指向时,ontouchstart 需要一个初始值 ,这个初始值是null,如果支持touchstart事件,那ontouchstart初始值设为null ,所以是这样的写法

typecho
document.ontouchstart == null;

这说明当前浏览器是支持ontouchstart的,因为如果不支持,document.ontouchstart的值是undefined
,再者document.ontouchstart没有被绑定事件的情况下就是等于null, 所以你才可以这样使用document.ontouchstart = function(){};

初始值就是Null,如果不等于null,可以说不支持

document.ontouchstart !== null;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板