jQuery基于$.ajax設(shè)置移動端click超時處理方法
本文實例講述了jQuery基于$.ajax設(shè)置移動端click超時處理方法。分享給大家供大家參考,具體如下:
這里介紹jquery click事件如何在移動端自動轉(zhuǎn)換成touchstart事件。
因為移動端click事件會比touchstart事件慢幾拍
移動設(shè)備某個元素上事件執(zhí)行順序是:
touchstart
touchmove
touchend
click{mousedown->mousemove->mouseup}
click事件在移動設(shè)備上雖然會識別但卻是最后一個執(zhí)行的,所以如果不把click事件換成touchstart事件的話,就可能造成延時導(dǎo)致交互上也慢了幾拍
所以在移動端最好把click事件換成touchstart事件。
那么如何添加事件比較簡單呢.
于是乎有了以下這種寫法:
var handle = function (e) { e.preventDefault(); // 阻止瀏覽器默認行為 alert('fuck world'); } $('body').on('touchstart mousedown', handle );
這樣在pc端瀏覽器上面alert只執(zhí)行一次,觸發(fā)的事件是mousedown
在ios設(shè)備safari瀏覽器上面alert也只執(zhí)行一次,觸發(fā)的事件是touchstart
為什么只執(zhí)行一次?
秘密在于當執(zhí)行的是touchstart后,preventDefault掉了后面的click就不執(zhí)行了,“非常完美”.
^_^! 一如既往的android設(shè)備蛋疼是必須的,測試發(fā)現(xiàn)除qq瀏覽器外其它瀏覽器都會alert兩次
也就是說touchstart和mousedown的handle函數(shù)都執(zhí)行了, 似乎是e.preventDefault()沒有起作用。具體原因不明...
因為要兼容,所以就沒辦法了只能通過判斷是否支持touch事件來分別添加事件了..
那就擴展一個jquery方法插件吧仿一個on方法的插件方法比如名稱為quickOn,(如果你連on方法怎么用都不知道,那你就走吧,離開這里...)
;(function(){ var isTouch = ('ontouchstart' in document.documentElement) ? 'touchstart' : 'click'; if(!$.fn.quickOn){ $.fn.quickOn= function(){ arguments[0] = (arguments[0] === 'click') ? isTouch: arguments[0]; return $.fn.on.apply(this, arguments); }; } })();
quickOn雖然名字尷尬了一點,但是能用,例如:
$('body').quickOn('click', function(){ alert('fuck world') ; })
額。。后來想想,為什么不直接重載jquery的on方法呢??
來吧,試試
;(function(){ var isTouch = ('ontouchstart' in document.documentElement) ? 'touchstart' : 'click', _on = $.fn.on; $.fn.on = function(){ arguments[0] = (arguments[0] === 'click') ? isTouch: arguments[0]; return _on.apply(this, arguments); }; })();
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《jQuery切換特效與技巧總結(jié)》、《jQuery拖拽特效與技巧總結(jié)》、《jQuery擴展技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》、《jQuery動畫與特效用法總結(jié)》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計有所幫助。
相關(guān)文章
jQuery中[attribute*=value]選擇器用法實例
這篇文章主要介紹了jQuery中[attribute*=value]選擇器用法,實例分析了[attribute*=value]選擇器的功能、定義及匹配給定的屬性包含某些值的元素的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2014-12-12