我有一个带有jQuery contextmenu
监听器的按钮。
在Safari和Chrome中,当您右键单击该按钮时,背景会变为蓝色一秒钟,然后选中/突出显示按钮内的文本。
我该如何防止这种情况?
jQuery(".class1").contextmenu(function (e) {
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="class1">Click Me</button>
答案 0 :(得分:1)
如果问题是在按钮内选择文本,那么您可以将{{ form_label(form.type[0], null, {"label_attr":{"class":"myclasshere"}}) }}
类添加到按钮,您不需要使用js。但也许我错了。
noselect
.noselect {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
not supported by any browser */
}
.noselect {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
not supported by any browser */
}
/*maybe give it a static background .. */
button{
background:yellow;
}
button:active{
background:yellow!important;
}
答案 1 :(得分:0)
在评论中你提到你在Mac上,蓝色背景/边框可能是因为你使用CTRL + LMB点击。
按下CTRL时,这将取消按钮上的焦点:
jQuery(".class1").contextmenu(function(e) {
return false;
}).keydown(function(e) {
if (e.keyCode == 17) { //CTRL
$(this).blur();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="class1">Click Me</button>