在Opera中使用jquery为元素分配动态光标样式

时间:2009-07-22 07:41:24

标签: javascript jquery css cursor opera

当鼠标悬停在元素上时,我正在尝试动态更改光标样式。光标应该是“move”或“default”,具体取决于方法返回的布尔值。 代码是这样的:

$("#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版本)

1 个答案:

答案 0 :(得分:3)

歌剧真的很有趣。我发现你必须在它实际工作之前将鼠标移动两次。 可以看到here您需要将鼠标悬停在Hello World上两次以使光标更改。

同样的问题描述了here