1

基本的に、ページの読み込み時に発生するイベントがあります。画像がカーソルをたどりますが、クリックイベントでこのイベントを無効にしてから、2回目のクリックでマウスフォローイベントを再度有効にします

トグル変数を作成しようとしましたが、イメージがフリーズしているようです。.on() と .off() はここで適切でしょうか? ドキュメントを読みましたが、それらを実装する方法について混乱しています

私が推測するイベントをオフにする方法について混乱しています。

Jscript

    var enabled = true;

        $(document).ready(function() {
            $(document).mousemove(function() {
                if (enabled) {
                    $("#rocket").stop().animate({left:e.pageX, top:e.pageY});
                }
            });
            $(document).click(function() {
                enabled == !enabled;
            }); 
        });

デモ

4

3 に答える 3

1

次のようにハンドラーを登録して削除しようとするかもしれません

$(document).ready(function () {
    function handler(e) {
        $("#rocket").css({
            left: e.pageX,
            top: e.pageY
        });
    }

    $(document).on('mousemove.cursor', handler);

    var enabled = true;
    $(document).click(function () {
        enabled = !enabled;
        if (enabled) {
            $(document).on('mousemove.cursor', handler);
        } else {
            $(document).off('mousemove.cursor');
        }

    });
});

デモ:フィドル

于 2013-11-10T06:54:47.410 に答える
1

コードを機能させるためのマイナーな修正を次に示します。

var enabled = true;

        $(document).ready(function() {
            $(document).mousemove(function(e) {
                if (enabled) {
                    $("#rocket").stop().animate({left:e.pageX, top:e.pageY});
                }
            });
            $(document).click(function() {
                enabled = !enabled;
            }); 
        });

フィドルはこちらhttp://jsfiddle.net/bmzyK/8/

mousemove イベントに param e を追加し、JSFiddle に JQuery を追加しました。「==」の誤字脱字も修正。

于 2013-11-10T06:54:47.907 に答える