在手机上长按网页中的按钮,浏览器会弹出这个按钮的背景图的操作菜单,怎样避免这种情况?

网页是用jQuery Mobile做的,按钮是一个a标签,a标签里面嵌套了一个img标签。监听的是taphold事件。

阅读 10.2k
5 个回答

要兼容的吧

cssa, img {
    -webkit-touch-callout: none;
    -ms-touch-callout: none;
    -moz-touch-callout: none;
    -o-touch-callout: none;
    touch-callout: none;
}

实在不行用js去实现

jsdocument.body.oncontextmenu=document.body.ondragstart= document.body.onselectstart=document.body.onbeforecopy=function(){
    return false;
};
document.body.onselect=document.body.oncopy=document.body.onmouseup=function(){
    document.selection.empty();
}; 

jq 写法?好像jq没有添加这个contextmenu方法你去看jq 2.0有没有,不过JSLite有哦

js$('#box').on('contextmenu',function(e){
    replyRightMenu(e);
    if ( e && e.preventDefault ) e.preventDefault(); 
    else window.event.returnValue = false;
    e.cancelBubble = true;
    return false;
});
a, img {
    -webkit-touch-callout: none;
}

你想要 a 的什麼效果,touch highlight?

img 不是用來做 ui 的,img 是網頁信息的一部分。ui 請用 css 設置 background

只要用 css 做就不會有這個問題了。

/css/
body{-webkit-tap-highlight-color: rgba(0,0,0,0);}

window.ontouchstart = function(e) { e.preventDefault(); };

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏