【问题标题】:assigning dynamic cursor style to element using jquery in Opera在 Opera 中使用 jquery 为元素分配动态光标样式
【发布时间】: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


    【解决方案1】:

    Opera 的光标非常有趣。我发现您必须将鼠标移到元素上两次才能真正起作用。 可以看到here 需要将鼠标悬停在 Hello World 上两次才能使光标发生变化。

    here描述了同样的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多