gpt4 book ai didi

javascript - 主干单击事件未在动态 View 上触发

转载 作者:数据小太阳 更新时间:2023-10-29 04:02:00 24 4
gpt4 key购买 nike

我有一个主干 View ,它为传入其中的每个模型创建一个新的 div。但是,我无法在 View 上触发任何类型的事件(单击 a.change-status),我认为这是因为其中的元素也是从模板生成的。如果有解决办法,请告诉我。

var videoDivView  = Backbone.View.extend({
el: '<div class="vendor-video" />',
initialize: function(){
_.bindAll(this);
this.render();
this.model.on('change:published', this.enableSaveButton);
},
events: {
'click a.change-status' : 'changeVideoStatus'
},
template: video_tmpl,
render: function(){
this.$el.attr("id", 'video-'+this.model.id);
this.$el.html(this.template(this.model.toJSON()));
this.$el.data('status', video_statuses[this.model.get('published')]);
},
changeVideoStatus: function(e) {
console.log(this.model);
return false;
},
enableSaveButton: function() {
$('#save-changes').removeClass('disabled').removeAttr('disabled');
}
});

示例模板如下所示:

<script id="single-video-tmpl" type="text/x-jquery-tmpl">
<div>
<div class="video-info">
<span class="video-title"><%=video_title%></span>
<div class="bottom-info">
<a href="#<%=id%>" class="change-status"></a>
</div>
</div>

</div>
</script>

最佳答案

在呈现新内容后尝试 this.delegateEvents()

关于javascript - 主干单击事件未在动态 View 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477539/

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