-2

簡単な説明: 関数内で $(this) を使用しても、適切なスコープ内にないため機能しないことは承知しています。他の同様の質問も見ました。シーンを修正する方法がまだわかりません。

目標: jQuery を使用してパノラマ写真ビューアーを作成しようとしています。動作していますが、複数のインスタンスが必要です。そのため、ホバリングしているものだけをターゲットにする必要があります。

コード:

jsFiddle: http://jsfiddle.net/kthornbloom/5J3rh/

簡略化されたコード:

var hoverInterval;

function doStuff() {

/* The next line is the one in question */

    $(this).animate({
      /* stuff happening */
    });
}

$(function() {
    $('.pan-wrap').hover(
        function() {
            /* stuff happening */
            hoverInterval = setInterval(doStuff, 250);
        },
        function() {
            clearInterval(hoverInterval);
   });
});
4

2 に答える 2

2

スコープの問題があります。これは doStuff でウィンドウ コンテキストです。

proxy()を使用する

hoverInterval = setInterval($.proxy(doStuff,this), 250);
于 2013-04-11T16:35:44.173 に答える