2011-11-27 10 views
1

私は単純なタスクを持っています - DOMエレメントからクリックリスナー機能を取得します。バックボーンとjQueryイベント

私は2つの問題fasedました:私はイベントリスナーを取得する方法が分からない

  1. を、そのはのaddEventListener FUNC
  2. $(要素)を介して設定された.dataの( 'イベント')であります常に最初の問題について話す

空 - 私は一つだけの場所でこの機能を使用していて、それは重要ではないと思います。私はJSの第一人者ではないんだけど

$(element).click(function(){}) 
    $(element).data('events') /*alway empty*/ 

$(element).click(function(){}) 
    $(element).data('events') /*contains events info*/ 

しかし、バックボーンと:しかし、第二の問題は、私は純粋なjQueryの環境でテストしてみた巨大な痛み...

ですのデータ ...でも、たぶん一般的なバックボーンの動作ですが、どうしたらイベントハンドラを取得できますか?

+0

var myBody = $('body'); var myDIV = $('<DIV id="contentDIV"></DIV>'); myBody.append(myDIV); var myButton = $('<button id="aButton">test</button>'); myDIV.append (myButton); var MyView = Backbone.View.extend({ el : myDIV, events: { 'click button#aButton' : 'doSomething' }, //here you bound the //event to a function. initialize: function(){ _.bindAll(this, 'render') }, render: function(){ myDIV.append('<br>working...'); }, doSomething: function(){ alert('doSomething function.. after click event'); } }); var myView = new MyView; myView.render(); 

PS:それはどのように機能するかを理解するための良いチュートリアルを純粋なjQuery環境 "の例です。明らかにあなたがそれを破ることをしている*他に何かがあります。これらをあなたの質問に追加する必要があります。 –

答えて

3

Backbone.jsを使用している場合は、Backbone.Viewオブジェクト内でイベントを管理し、JQueryで直接イベントをキャプチャしないようにする必要があります。

あなたはこのような何か試してみてください:あなたはあなたの例「だがバックボーンを持つ」ために掲載のコードは、あなたの "と同じですhttp://arturadib.com/hello-backbonejs/

関連する問題