1
我最近添加了一個js的觸摸映射函數(在這裏找到,在stackoverflow的某處)我的網頁之一,所以我可以讓我的JQuery的可拖動工作在iOS Safari(拖放沒有這個映射將無法正常工作,據我所看到的)觸摸映射和輸入焦點與移動與Javascript
這是函數:
function touchHandler(event)
{
var touches = event.changedTouches,
first = touches[0],
type = "";
switch(event.type)
{
case "touchstart": type = "mousedown"; break;
case "touchmove": type="mousemove"; break;
case "touchend": type="mouseup"; break;
default: return;
}
altKey, shiftKey, metaKey, button, relatedTarget);
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type, true, true, window, 1,
first.screenX, first.screenY,
first.clientX, first.clientY, false,
false, false, false, 0, null);
first.target.dispatchEvent(simulatedEvent);
event.preventDefault();
}
一切都運行得很好......除非我焦點的輸入或文本域(Facebook的評論插件,特別是)和iOS鍵盤顯示。
當我輸入我的文本並點擊輸入上方的「發送」按鈕後,該函數給模擬鼠標事件提供了錯誤的Y座標(我相信這是因爲鍵盤改變了頁面的高度),並最終點擊按鈕上方的某處。
輸入模糊,但發送按鈕不會被點擊。就好像這還不夠可怕,頁面上的另一個按鈕(發送者上方的某些像素)會被點擊並鏈接到另一個頁面。
我以爲我可以禁用映射時,輸入成爲焦點,但似乎Facebook的評論插件元素根本無法訪問。
任何幫助表示讚賞,我一直在努力解決這個現在天...