当鼠标悬停在元素上时,我正在尝试动态更改光标样式。光标应该是“移动”或“默认”,具体取决于方法返回的布尔值。代码是这样的:
$("#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(工作)
- 谷歌浏览器 2.0(工作)
- Safari 3.2(工作)
(Windows 版本)