javascript - 請教一個關於touchstart事件的小問題
仅有的幸福
仅有的幸福 2017-06-08 11:03:12
0
2
898

有一段程式碼比較疑惑

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,指向一個對象,未指向時,ont start這個初始值是null,如果支援touchstart事件,那麼ontouchstart初始值設為null ,所以是這樣的寫法

typecho
document.ontouchstart == null;

這說明目前瀏覽器是支援ontouchstart的,因為如果不支援,document.ontouchstart的值是undefined
,再者document.ontouchstart 所以沒有被綁定事件的情況下就是等於null,才可以這樣使用document.ontouchstart = function(){};

初始值就是Nul​​l,如果不等於null,可以說不支援

document.ontouchstart !== null;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板