【发布时间】:2009-07-22 07:41:24
【问题描述】:
我试图在鼠标悬停在元素上时动态更改光标样式。光标应该是“移动”或“默认”,具体取决于方法返回的布尔值。 代码是这样的:
$("#elemId").mousemove(function(event) {
if(cursorShouldBeMove()) {
$(this).css({'cursor':'move'});
} else {
$(this).css({'cursor':'default'});
}
}
此代码在 IE8、FF3、Chrome 和 Safari 中运行起来就像一个魅力。 只有 Opera 无法正确处理。
我使用的是 Opera 9.6.4
有人知道如何解决这个问题吗?
我准备了一个样品进行测试;
var cursorStatus = true;
setInterval(function() { cursorStatus = !cursorStatus; }, 500);
function cursorShouldBeMove() {
return cursorStatus;
}
$(function() {
$("#elemId").mousemove(
function(event) {
$(this).css("cursor", cursorShouldBeMove() ? "move" : "default");
}
);
});
如果您将鼠标从#elemId 外部移动到其内部几次,您会看到光标会发生变化。但是,如果您将鼠标放在#elemId 中并移动鼠标,光标不会改变。
代码很简单。我认为这是 Opera 的错误。
我也测试了这段代码;
- Firefox 3.5.1(工作)
- Internet Explorer 7(工作)
- Google Chrome 2.0(工作)
- Safari 3.2(工作)
(Windows 版本)
【问题讨论】:
标签: javascript jquery css opera mouse-cursor