1

私はjQueryコードをBackboneに書き直す過程にありますが、一見些細な問題で立ち往生しています。

メインのView要素の子である要素のイベントコールバック内で、クリックされた特定の子要素にアクセスするにはどうすればよいですか?

var Composer = Backbone.View.extend({
    events: {
        "click #postnow":  "postnow"
    },
    postnow: function(){
        // @fixme:
        var btn = $("#postnow");
        // Do something
    }
});

new Composer({el: $('.composer')});

jQueryでは、を使用$(this)しますが、Backboneでは、クリックされた子ではなく、View要素を参照します。

セレクターを再度明示的に指定せずにそれを行う方法はありますか?

4

2 に答える 2

5

ビューコールバックでは、jQueryイベントとそのプロパティ、より具体的にはevent.currentTargetにアクセスできます。

試す

var Composer = Backbone.View.extend({
    events: {
        "click #postnow":  "postnow"
    },
    postnow: function(e){
        var btn = $(e.currentTarget);
    }
});
于 2012-08-03T10:42:50.740 に答える
0

暗黙のパラメーターが関数コールバックに送信されます。このパラメーターはjQueryイベントオブジェクトであり、イベントがターゲットにされたDOM要素を含む多くの情報が含まれています。

var Composer = Backbone.View.extend({
    events: {
        "click #postnow":  "postnow"
    },
    postnow: function( event ){
        console.log( "postnow()" );
        console.log( "this", this );
        console.log( "event", event ); 
        console.log( "target", event.target ); 
        console.log( "data-value", $(event.target).attr( "data-value" ) ); 
    }
});

動作しているjsFiddleを確認してください

于 2012-08-03T10:44:21.960 に答える