Javascript 模仿;onselectstart=returnfalse";使用CSS或其他非JS方法?

Javascript 模仿;onselectstart=returnfalse";使用CSS或其他非JS方法?,javascript,html,css,Javascript,Html,Css,我创建了一个按钮CSS类,它使用不同位置的背景图像在正常、鼠标悬停和单击状态下显示不同的图像。 完全破坏视觉效果的一件事是,如果我反复单击这样的链接并只移动鼠标一个像素,链接文本就会被选中 有没有办法达到这个效果 onselectstart = "return false;" 而不必为每个按钮指定?基于CSS的解决方案将是完美的,但我想不出一个。有什么想法吗 一种方法是使用prototype或JQuery迭代每个“button”元素,并手动设置onselectstart事件。然而,当不是绝对必

我创建了一个按钮CSS类,它使用不同位置的背景图像在正常、鼠标悬停和单击状态下显示不同的图像。 完全破坏视觉效果的一件事是,如果我反复单击这样的链接并只移动鼠标一个像素,链接文本就会被选中

有没有办法达到这个效果

onselectstart = "return false;"
而不必为每个按钮指定?基于CSS的解决方案将是完美的,但我想不出一个。有什么想法吗

一种方法是使用prototype或JQuery迭代每个“button”元素,并手动设置onselectstart事件。然而,当不是绝对必要的时候,我对Javascript过敏,我会很感激任何非JS的想法

编辑:我找到了一个适用于Mozilla浏览器的解决方案:

 -moz-user-select:none;
完全破坏视觉效果的一件事是,如果我反复单击这样的链接并只移动鼠标一个像素,链接文本就会被选中

它真的是一个链接吗?通常不能选择链接文本

如果您使用div作为假链接,那么您可能应该使用链接(如果链接带有真实的href),或者输入按钮(如果只是用于编写脚本)(尽管这需要一些样式来丢失浏览器默认样式,这有点麻烦)

否则,Safari/Chrome/Konqueror将以自己的名称复制Mozilla的属性:

-webkit-user-select: none;
-khtml-user-select: none;
对于其他浏览器,您需要一个JavaScript解决方案。注意
onselectstart
返回false仅在IE和Safari/Chrome中足够;对于Mozilla和Opera,还必须返回false
onmousedown
。这也可能会停止
单击
触发,因此在返回false之前,您必须在
mousedown
处理程序中为按钮执行计划的任何脚本操作,而不是
onclick

当然,您可以从脚本中分配这些处理程序,以避免弄乱标记,例如:

<div class="button">...</div>

.button { -moz-user-select: none; -webkit-user-select: none; -khtml-user-select: none; }

function returnfalse() {
    return false;
}

var divs= document.getElementsByTagName('div');
for (var i= divs.length; i-->0;)
    div.onselectstart= returnfalse;
。。。
.button{-moz用户选择:无;-webkit用户选择:无;-khtml用户选择:无;}
函数returnfalse(){
返回false;
}
var divs=document.getElementsByTagName('div');
对于(变量i=divs.length;i-->0;)
div.onselectstart=returnfalse;

非常漂亮和完整。非常感谢。