2017-11-20 13 views
0

イベントを動的に追加しようとしていますが、イベントは発生しません。 jQueryは利用できません。ページの読み込み後に動的にバックボーンイベントを追加する

バックボーンコード

var OptimizelyTeacherClick = Backbone.View.extend({ 

events: { 
    "click button.start-class-creation" : "optimizelyEvent" 
}, 

optimizelyEvent: function(e){ 
    e.preventDefault(); 
    console.log('Optimizely Event'); 
    alert('Optimizely Event'); 
    } 

}); 

var optimizelyTeacherClick = new OptimizelyTeacherClick({ el: $('.start-class-creation') }).render(); 

HTML

<form class="start-class-creation-form" action="http://site.dev/classes/online/new?type=online&amp;via=teach&amp;button=page_top" method="post"> 
<input value="My Class" name="title" class="initialized" type="hidden"> 
<button type="submit" class="btn submit-btn large primary start-class-creation">Get Started</button> 
</form> 

答えて

0

OptimizelyTeacherClickビューのためのroot el elementは、ボタンそのものです。したがって、イベントキーの文字列はclickである必要があります。イベントはelにバインドされています。

var OptimizelyTeacherClick = Backbone.View.extend({ 

    events: { 
     "click": "optimizelyEvent" 
    }, 

    optimizelyEvent: function(e) { 
     e.preventDefault(); 
     console.log('Optimizely Event'); 
    } 
}); 

セレクタ文字列でビューをインスタンス化するだけで、BackboneがjQueryでフェッチすることもできます。

var optimizelyTeacherClick = new OptimizelyTeacherClick({ 
    el: '.start-class-creation' 
}).render(); 

言われていること、あなたがこのデザインで正しい方向に向かっているような気がしませんが、私はより多くのを助けるためにあなたのプロジェクトに十分に知りません。

関連する問題