javascript - 請教一個(gè)關(guān)于touchstart事件的小問題
問題描述
有一段代碼比較疑惑
var clickEventType=((document.ontouchstart!==null)?’click’:’touchstart’);
如果說 document.ontouchstart!==null,那說明 touchstart 是有的,那應(yīng)該這樣是:
var clickEventType=((document.ontouchstart!==null)?’touchstart’:’click’)
為什么是上面那種寫法呢?
問題解答
回答1:如果寫成
var clickEventType=((typeof document.ontouchstart ==='undefined')?’click’:’touchstart’)
你就明白了,ontoucstart 是doucment對象的一個(gè)屬性,但是ontouchstart 指向函數(shù)的的一個(gè)引用,也就是ontouchstart指向一個(gè)對象,未指向時(shí),ontouchstart 需要一個(gè)初始值 ,這個(gè)初始值是null,如果支持touchstart事件,那ontouchstart初始值設(shè)為null ,所以是這樣的寫法
回答2:document.ontouchstart == null;
這說明當(dāng)前瀏覽器是支持ontouchstart的,因?yàn)槿绻恢С郑琩ocument.ontouchstart的值是undefined,再者document.ontouchstart沒有被綁定事件的情況下就是等于null, 所以你才可以這樣使用document.ontouchstart = function(){};
初始值就是Null,如果不等于null,可以說不支持
document.ontouchstart !== null;
相關(guān)文章:
1. node.js - mysql如何通過knex查詢今天和七天內(nèi)的匯總數(shù)據(jù)2. shell - Update query wrong in MySQL3. javascript - 用jsonp抓取qq音樂總是說回調(diào)函數(shù)沒有定義4. mysql 插入數(shù)值到特定的列一直失敗5. mysql 怎么做到update只更新一行數(shù)據(jù)?6. javascript - 新浪微博網(wǎng)頁版的字?jǐn)?shù)限制是怎么做的7. 怎么在網(wǎng)頁中設(shè)置圖片進(jìn)行左右滑動(dòng)8. 360瀏覽器與IE瀏覽器有何區(qū)別???9. sublime可以用其他編譯器替換嗎?10. python - 在使用Pycharm時(shí)經(jīng)常看到如下的樣式,小括號里紅色的部分是什么意思呢?
