Backbone Marionette ItemView的事件不会使用说明符触发

时间:2012-08-09 15:04:45

标签: backbone.js marionette

有以下观点:

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>&nbsp;  
    <span class="clickable" data-dest="prev">Previous</span>&nbsp;
     <input type="text" value="{{ page }}"  size="3" /> of {{ pages}} 
      <span class="clickable" data-dest="next">Next</span>&nbsp;
    <span class="clickable" data-dest="{{ pages }}">Last</span> &nbsp;
      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上(与锚标签也有同样的问题。

我知道这是我做的蠢事......

1 个答案:

答案 0 :(得分:1)

事实证明,我做的事情并非愚蠢。

事实证明,如果你有

,就会发生这种情况

jquery.validate 1.5.5
和 jquery 1.7.2 (可能还有其他版本影响这就是我所拥有的版本)

删除jquery.validate(我没用过)让它重新开始工作