我有html内容,如:
<button class="submit">Save</button>
并查看如下:
var MyView = Backbone.View.extend({
events: {
'click .submit': 'save'
},
save: function() {}
}
当我点击此按钮时,我发现主干不会处理此事件,而是进行标准浏览器操作(至少在Chrome上)。 <a>
标记也是如此。我的意思是Backbone没有绑定这个标签。
目前我要使用<span>
按钮,它工作正常,但我想知道为什么我不能使用按钮的标准标签?我如何删除标准浏览器事件,并使用<a>
或<button>
答案 0 :(得分:5)
事件只是'听众' - 他们被告知事件发生了。如果你想要停止活动,你必须
save: function(event) {
event.preventDefault();
event.stopPropagation();
}
要检查Backbone是否处理该事件,请在单击时检查是否调用了侦听器(save
)。 Backbone不会停止默认行为,您必须自己在事件处理函数中执行此操作。
另一个建议:将您的按钮放在form
内,并为submit form
添加一个事件监听器。如果用户使用键盘提交表单(单击事件仅适用于鼠标),这也将起作用。