0

マウスがブラウザウィンドウ上のどこにあるかに移動するたびに、いくつかの関数を呼び出そうとしています。現在、私は使用しています:

$('html').live('mousemove', function(e) { ... }

ページが下にスクロールすると機能しないようです。

mousemoveイベントをウィンドウ全体にバインドする方法はありますか?

$(window).live('mousemove', function(e) { ... }

結果は何もありません。

--

編集:

マウス機能の私のコードは次のとおりです。

function mouseEvents() {



       // set up mouse movement
        $(window).on('mousemove', function(e) {
            if (window.imgLoaded) {
                var x = e.pageX/$(window).width()*504;
                var y = e.pageY/$(window).height()*504;
                console.log(y);
                drawKaleidoscope(window.ctx, window.img, x / 2, y / 2);
            }
        });
    }
4

3 に答える 3

2

$(document).bind("mousemove", function(e) { ... } )

スクロールでもトリガーするには (マウスホイールを動かしても mousemove はトリガーされません)。

$(document).bind("mousemove mousewheel DOMMouseScroll", function(e) { ... } )

DOMMouseScrollマウスホイールのFirefox固有のイベントはどこにありますか。

于 2012-07-05T11:30:51.117 に答える
0

ご注意ください:

.live は非推奨です: ここを参照してください: http://api.jquery.com/live/ (非推奨のカテゴリ)

これを試すことができます:

$(document).on('mousemove', function(e) { ... }

**or**

$(document).live('mousemove', function(e) { ... }
于 2012-07-05T11:31:34.000 に答える
0

なぜ .live を使用しているのですか? ライブは、まだ作成されていない要素 (または動的に追加および削除される要素) 用です。

window最初からそこにdocumentあるので、使用するだけ$(document).bindです。

jQuery 1.7 以降を使用している場合は、$(document).on.

于 2012-07-05T11:31:45.013 に答える