Я пытаюсь динамически изменить стиль курсора, когда мышь находится над элементом. Курсор должен быть «двигаться» или «по умолчанию» в зависимости от логического значения, возвращаемого методом.
Код выглядит примерно так:
$("#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)