0

関数「clickEvent()」を呼び出して、jQueryを使用してarrow-keyUpの属性を持つobjを渡そうとしています。しかし、私は機能に到達していません。これがコードです。ありがとう。

注意:既存のコードをフォークしていますが、arrowPressイベントを追加しています。したがって、(方向!= null)領域の場合、ドキュメントの準備ができていると予想されるとおりにすべてが維持されます。

$(document).ready(function() {
    $('body').keyup(function(event) {
        var direction = null;

        // handle cursor keys
        if (event.keyCode == 37) {
            // slide left
            direction = 'prev';
        } else if (event.keyCode == 39) {
            // slide right
            direction = 'next';
        }

        if (direction != null) {
            //alert($('.'+ direction).attr('rel'));
            //need to pass the alert above as an obj to the function clickEvent() below.
        }
    });

}); //end $(document).ready


//function on external .js src
(function($) {
    function clickEvent(obj) {
        alert(obj.attr("rel"));
    }

    $.fn.slidingPage = function(options) {
        $el = $(this);
    }
})(jQuery); //end ext js scr
4

3 に答える 3

0

アンドレイ・クズミンに感謝します...

if (direction != null) {

   $('.'+ direction).click();       

}
于 2012-10-24T13:58:45.180 に答える
0

関数clickEventは別の関数のスコープ内にあり、同じスコープまたはより高いスコープに配置します。

function clickEvent(obj) {
    alert(obj.attr("rel"));
}

$.fn.slidingPage = function(options) {
    var $el = $(this);
};

(function($) {
    $('body').keyup(function(event) {
        var direction = null;

        // handle cursor keys
        if (event.keyCode == 37) {
            // slide left
            direction = 'prev';
        } else if (event.keyCode == 39) {
            // slide right
            direction = 'next';
        }

        if (direction != null) {
            clickEvent( $('.'+ direction) );
        }
    });

});

clickEventおよびslidingPage宣言がドキュメントレディハンドラー内にある理由はありません。

于 2012-10-24T10:38:16.327 に答える
0

グローバル変数の汚染を防ぐためにコードを無名関数にラップする必要がある場合は、イベントコードと関数コードを同じスコープに配置する必要があります。

おそらく、.prevと.nextでクリックイベントをトリガーする必要があります。

$(document).ready(function() {
    $('body').keyup(function(event) {
        var direction = null;

        // handle cursor keys
        if (event.keyCode == 37) {
            // slide left
            direction = 'prev';
        } else if (event.keyCode == 39) {
            // slide right
            direction = 'next';
        }

        if (direction != null) {
            $('.'+ direction).click()
        }
    });

}); //end $(document).ready
于 2012-10-24T11:02:28.400 に答える