我目前有一个包含以下内容的html文件:
<div class="button1">
<button class="first" id="up" onclick="tranistionUp">
Go Up
</button>
<button class="last" id="down" onclick="tranistionDown">
Go Down
</button>
</div>
我在backbone.js视图文件中有以下内容:
var BlahView = BackBone.View.extend({
initialize:function(){},
blah...
blah...
transitionUp: function(){
blah...
},
tranistionDown: function(){
},
render:function (){
blah....
};
});
当我点击按钮时,我发现这两个功能都有一个未定义的功能错误,我是骨干的新手,任何帮助都会很棒。
答案 0 :(得分:24)
您应该在Backbone.View
。
HTML(将id="myButtons"
添加到容器div
)
<div class="button1" id="myButtons">
<button class="first" class="button-up">Go Up</button>
<button class="last" class="button-down">Go Down</button>
</div>
JavaScript(已添加events
)
var BlahView = Backbone.View.extend({
events: {
"click .button-up": "transitionUp",
"click .button-down": "tranistionDown",
},
transitionUp: function() {
console.log("Transition up");
},
tranistionDown: function() {
console.log("Transition down")
}
});
var blahView = new BlahView({ el: $('#myButtons') });
通过指定onclick
属性,您的浏览器需要在全局范围内使用名为transitionUp
和transitionDown
的函数。您的方法在对象中定义。通常不鼓励使用HTML属性绑定事件处理程序,尤其是在使用Backbone时(因为您无法轻松地将事件绑定到视图的特定实例)。