所以我有一个拖动元素的web应用程序(在html,css和javascript,jquery中)(这意味着,由于元素随着光标移动,光标不会移动该元素)。我希望将光标更改为“移动”光标,但我遇到了这种奇怪的行为。我写了这段代码来演示:在不移动光标时更改
<html>
<head></head>
<body oncontextmenu="return false;">
<script>
var b=document.getElementsByTagName('body')[0];
b.onmousedown=function(event){
if(event.button){
b.style.cursor='move';
}
}
b.onmouseup=function(event){
if(event.button){
b.style.cursor='initial';
}
}
</script>
</body>
</html>
所以基本上,我想让光标变成'光标:移动'每当用户按住鼠标右键时,但是,会发生以下情况:
- 初始:光标:默认
- 按下鼠标:光标:默认
- 鼠标移动:光标:默认
- 鼠标向上:光标:移动
- 鼠标移动:光标:默认
所以现在我的问题是:为什么会发生这种情况,以及如何解决这个问题?
PS:铬测试,这是主要的浏览器,我需要这
这似乎并不鼠标按钮被释放时,将光标重置为默认样式。 'e.button == 2'将永远是这种情况,因为它是相同的按钮。它需要通过事件_type_区分。 – CBroe
由于打开了上下文菜单,它只是变回默认光标。如果你添加'oncontextmenu =“返回false;”'到'body'你的代码片段不再工作 – vrugtehagel
@vrugtehagel - opps对不起,我编辑它,它搞砸了。我会再次编辑! – vsync