有以下观点:
ContactsApp.SettingsView = Backbone.Marionette.ItemView.extend({
initialize: function () {
this.bindTo(this.model, "change", this.modelChanged);
},
modelChanged: function (model, value) {
console.log(this.model.get('search'));
this.render();
},
events: {
'click .clickable': 'GoTo',
'keyup input[type=text]': 'search'
},
GoTo: function (ev) {
var dest = $(ev.target).data('dest');
if (dest == undefined) { return; }
if (dest === "next") { this.model.nextPage(); return; }
if (dest === "prev") { this.model.previousPage(); return; }
this.model.set({ page: dest });
},
search : function (ev) {
console.log('search');
},
template: "#additional-stuff-template"
});
和我的模板:
<script type="text/template" id="additional-stuff-template">
<span class="clickable" data-dest="1">First</span>
<span class="clickable" data-dest="prev">Previous</span>
<input type="text" value="{{ page }}" size="3" /> of {{ pages}}
<span class="clickable" data-dest="next">Next</span>
<span class="clickable" data-dest="{{ pages }}">Last</span>
Search : <input type="text" class="search" value="{{ search }}" size="15" />
</script>
事件不会发生。如果我改变
events: {
'click .clickable': 'GoTo',
'keyup input[type=text]': 'search'
},
到
events: {
'click': 'GoTo',
'keyup': 'search'
},
我可以让click事件运行但不仅仅是在span上(与锚标签也有同样的问题。
我知道这是我做的蠢事......
答案 0 :(得分:1)
事实证明,我做的事情并非愚蠢。
事实证明,如果你有
,就会发生这种情况 jquery.validate 1.5.5
和
jquery 1.7.2
(可能还有其他版本影响这就是我所拥有的版本)
删除jquery.validate(我没用过)让它重新开始工作