1

私はjsfiddleコードを持っています。私は、関数と という別のCalオブジェクトで構成されるオブジェクトを持っています。内部には と の 2 つの機能があります。私がやっていることは、オブジェクトの関数を呼び出し、そこにパラメーターを渡すことです。この関数内での関数を呼び出し、ここで同じパラメータを渡します。この関数内で、ユーザーがコンソールに表示されるリンクをクリックすると、内部で関数を呼び出しています。しかし、このコードを実行すると、 をクリックする前にコンソールに表示されます。.button をクリックしたときに param が表示されるようにするには、なぜ、どのようにすればよいですか?initEventEventinitshowinitCalinitEventinitinitshowEvent.buttonparamparam.button

これが私のコードです

var Cal = {
    init: function (param) {
        this.param = param;
        Cal.Event.init(this.param);
    },

    func: function () {},

    Event: {
        init: function (param) {
            $('.button').on('click', this.show(param));
        },

        show: function (param) {
            console.log(param);
        }
    }
}

Cal.init('para');
4

3 に答える 3

4

.on() パラメータ 2 が関数であることを期待し、その関数の戻り値ではありません

$('.button').on('click', function() {
    // Here this points to the button DOM object.
    Cal.Event.show(param)
});
于 2013-04-13T07:33:27.520 に答える