1

特定のコンテキストを次のクリック バインド メソッドに渡したい:

$(document).ready(function(){

    var o = {
        name : 'I\'m object O'
    };

    $('#my-button').click(function(){
        alert(this.name);
    }.call(o));
});

問題は、ページが読み込まれるとすぐにこれがトリガーされることです。コンテキストをクリック ハンドラーの匿名関数にバインドし、クリック イベントが発生したときにのみトリガーする方法はありますか? また、クリック イベントではなく、ページの読み込み時にトリガーされた理由を説明できますか。

4

3 に答える 3

7

使用する$.proxy

$("#my-button").click($.proxy(function () {
   alert(this.name);
}, o));
于 2013-01-10T03:42:42.967 に答える
1

宣言時にこの匿名関数を呼び出しているため、機能していません。代わりにこれを試してください:

$(document).ready(function(){

    var o = {
        name : 'I\'m object O'
    };

    $('#my-button').click(function(){
        function(){
            alert(this.name);
        }.call(o)
    });
    /*
     * Or shorter:
     * $('#my-button').click(function(){
     *     alert(o.name);
     * });
     */
});
于 2013-01-10T03:44:14.867 に答える
0

$(document).mousedown(function(e){

//何かをする

}

于 2013-01-10T04:25:18.370 に答える