gpt4 book ai didi

javascript - backbone.js - 事件只触发一次

转载 作者:搜寻专家 更新时间:2023-11-01 04:58:43 24 4
gpt4 key购买 nike

我的事件没有像我希望的那样进行,我想我知道原因。单击每页跨度时,一切都会正确呈现。但我意识到 - 也许事件没有重新附加到新标记?这就是为什么它只能工作一次吗? (如果我单击其中包含数字 10 的范围,将显示 10 个项目。但之后,我单击的任何内容都不会改变任何内容)

有什么更好的组织方式?模板不应该包括分页部分吗?再次呈现后,如何将主干事件附加到标记?

var ListView = Backbone.View.extend({

initialize: function() {
var self = this;
this.collection.bind("refresh", function(){self.render();});
this.render();
},

events: {
'click ul#perpage span': 'setperpage'
},

setperpage: function(event) {
this.collection.perpageurl = '/perpage/' + $(event.target).text();
this.collection.fetch();
this.collection.refresh();
},

render: function() {

template = _.template('\
<table>\
<% _(collection).each(function(model){%>\
<tr><td><%=model.id%></td><td><%=model.name%></td><td><%=model.email%></td></tr>\
<%}); %>\
</table>\
<ul id="perpage">\
<li><span>5</span></li>\
<li><span>10</span></li>\
</ul>\
');

var context = {collection: this.collection.toJSON()};
$(this.el).html(template(context));
$('#app').html(this.el);
return this;
}
});

最佳答案

尝试:

render: function()
{
// …

this.delegateEvents();
return this;
}

要在 JavaScript 中调试事件,请使用 Visual Event .它会告诉您哪些元素附加了事件。

关于javascript - backbone.js - 事件只触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5684240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com