页面加载不起作用后动态添加骨干事件

时间:2017-11-20 17:54:08

标签: javascript backbone.js

我正在尝试动态添加事件,但事件不会触发。 jQuery不可用。

Backbone Code

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>

1 个答案:

答案 0 :(得分: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();

话虽这么说,我不觉得你在这个设计上走的是正确的方向,但我对你的项目不太了解,无法帮助更多。