iPhone上的點擊延遲是用於區分點擊和滾動的功能。當綁定到click
事件時,iOS會等待約300ms,以確定您是在單擊對象還是嘗試滾動頁面。
您可以使用jQuery Mobile的vclick
事件,該事件的啓動速度要快得多,但您可能會遇到以下情況:vclick
事件在連續兩次觸發時可能會導致多個元素被點擊。下面是如何使用vclick
事件,並只捕獲事件觸發的第一一些示例代碼:
$(function() {
//setup a function to check if a vclick event has fired within the last 500ms
function check_vclick() {
//if a vclick event has fired in the last 500ms then return false
if (do_vclick == false) return false;
//otherwise set a flag to disallow vclicks for 500ms
do_vclick = false;
//setup a timeout to allow vclicks in 500ms
setTimeout(function() {
do_vclick = true;
}, 500);
//return true so the event handler knows it's ok to run its code
return true;
}
//setup a flag to allow/disallow vclick events from firing
var do_vclick = true;
//bind an event handler to the vclick event for an element
$('#link_id').bind('vclick', function() {
if (check_vclick()) {
//run the code associated with the element, if it's a link referencing a pseudo-page on the same HTML document, you can do something like this
$.mobile.changePage($(this.href));
}
});
});
下面是對文件的鏈接$.mobile.changePage()
:http://jquerymobile.com/demos/1.0rc2/docs/api/methods.html
下面是該文檔的鏈接vclick
(公告虛擬鼠標事件部分下的註釋):http://jquerymobile.com/demos/1.0rc2/docs/api/events.html
您是否在非開發人員模式設備上進行了測試?之前從某些設備上看到,一旦它們處於開發者模式,輸入識別延遲可能會增加。我與這個線程上的另一個開發者進行了很長時間的談話http://stackoverflow.com/questions/7877419/what-are-common-sources-of-phonegap-with-jquery-mobile-performance-issues/7925211#7925211 about問題。在我的設備上(這不是開發者模式),頁面,過渡,一切都很好。非常敏感。在他身上,大約有1秒鐘的延遲。 – sgliser