jQuery的tap事件是一個(gè)移動(dòng)端事件,用來(lái)模擬點(diǎn)擊事件。
$('selector').on('tap', function() { // 處理點(diǎn)擊事件邏輯 });
在移動(dòng)設(shè)備上,如果需要監(jiān)聽點(diǎn)擊事件,最好使用tap事件。tap事件與click事件的差別在于,tap事件可以在移動(dòng)設(shè)備上模擬點(diǎn)擊,同時(shí)還可以避免click事件的300ms延遲。在移動(dòng)設(shè)備上,當(dāng)用戶點(diǎn)擊屏幕時(shí),瀏覽器會(huì)先等待300ms,檢查該事件是否為雙擊事件,如果不是,則觸發(fā)單擊事件。而tap事件則能夠直接響應(yīng)用戶的觸摸事件。
// 區(qū)別tap事件和click事件的代碼 $('selector').on('tap', function() { console.log('tap event'); }); $('selector').on('click', function() { console.log('click event'); });
有些情況下,我們需要防止默認(rèn)的tap事件,比如禁用某些區(qū)域或者防止頁(yè)面上下滑動(dòng)。可以在回調(diào)函數(shù)中使用event.preventDefault()方法。
$('selector').on('tap', function(event) { event.preventDefault(); // 防止默認(rèn)的tap事件,比如禁用某些區(qū)域或者防止頁(yè)面上下滑動(dòng) });
另外,由于tap事件是模擬的點(diǎn)擊事件,所以有些特定的場(chǎng)合下需要模擬鼠標(biāo)按下和松開事件。可以使用touchstart和touchend事件,分別模擬按下和松開事件。
$('selector').on('touchstart', function() { // 模擬鼠標(biāo)按下事件 }); $('selector').on('touchend', function() { // 模擬鼠標(biāo)松開事件 });