2009-07-22 17 views
4

マウスが要素の上にあるときにカーソルスタイルを動的に変更しようとしています。メソッドによって返されるブール値に応じて、カーソルは「移動」または「デフォルト」のいずれかになります。オペラのjqueryを使用して要素に動的カーソルスタイルを割り当てる

$("#elemId").mousemove(function(event) { 
    if(cursorShouldBeMove()) { 
     $(this).css({'cursor':'move'}); 
    } else { 
     $(this).css({'cursor':'default'}); 
    } 
} 

このコードは、IE8、FF3、ChromeとSafariで魔法のように動作します: コードは次のようなものです。 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版)を(勤務)

答えて

3

Operaはカーソルで面白いです。私はそれが実際に動作する前に、要素の上にマウスを2回動かさなければならないことがわかります。 hereを参照すると、カーソルを変更するためにHello Worldに2回カーソルを置く必要があることがあります。

同じ問題が記載されていますhere

関連する問題