對於網站,我想在用戶「長按」屏幕時顯示自定義上下文菜單。我在代碼中創建了一個jQuery Longclick偵聽器來顯示自定義上下文菜單。會顯示上下文菜單,但iPad的默認上下文菜單也會顯示!我試圖在我的聽衆加入preventDefault()
的事件,以防止這一點,但是這並不工作:防止移動Safari(iPad/iPhone)中longpress/longclick上的默認上下文菜單
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
問題
- 可以防止iPad的默認上下文菜單顯示?
- 可以通過使用jQuery Longclick插件完成嗎?
的Longclick插件已經爲iPad的一些具體處理(通過這個片段的it's source code假設):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
所以我想這回答我的第二個問題(假設該插件使用了正確的事件)。
它在jsfiddle.net上工作,但不能在本地頁面上工作爲什麼? – RGA
你在頁面上加載了http://code.jquery.com/jquery-1.8.2.js嗎? –
是的,我做到了,但沒有爲我工作。 – RGA