назначение стиля динамического курсора элементу с помощью jquery в Opera - PullRequest
4 голосов
/ 22 июля 2009

Я пытаюсь динамически изменить стиль курсора, когда мышь находится над элементом. Курсор должен быть «двигаться» или «по умолчанию» в зависимости от логического значения, возвращаемого методом. Код выглядит примерно так:

$("#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 Ответ

3 голосов
/ 22 июля 2009

Опера очень забавная с курсорами. Я считаю, что вы должны навести курсор мыши на элемент дважды, прежде чем он на самом деле работает. здесь видно, что вам нужно дважды навести курсор на Hello World, чтобы курсор изменился.

Та же проблема описана здесь

...