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