1

次のビューがあります。

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'
},

クリック イベントを実行することはできますが、スパンだけではありません (アンカー タグにも同じ問題がありました。

私はこれが私がやっている愚かなことだと知っています...

4

1 に答える 1

1

私がやっていたことは愚かなことではなかったことがわかりました。

あなたが持っている場合、これが起こる可能性があることが判明しました

jquery.validate 1.5.5
および jquery 1.7.2 (これが影響する他のバージョンがあるかもしれませんが、これは私が持っていたものにすぎません)

jquery.validate(私は使用していませんでした)を削除すると、再び機能し始めました

于 2012-08-09T18:56:07.607 に答える