我有一个canvas元素附加到View下的文档正文(与它分开)。我想将canvas元素追加到View中的div。它适用于点击,但当我把它放在渲染功能中时,它不会。这就是代码的样子:
不工作:
render : function() {
var that = this;
$(this.el).html(this.template());
$('canvas').appendTo('.container3');
return this;
}
WORKING:
events : {
'click .qgaz': 'blabla'
},
blabla : function() {
$('canvas').appendTo('.container3');
}
为什么会发生这种情况?如何在页面加载时使其自行运行?
编辑 - 这里是完整视图:
window.printView = Backbone.View.extend({
tagName : 'div',
className : 'print-menu-view',
initialize : function() {
var that = this;
// tu wybierz template z templates/main.tpl
this.testowaZmienna = "test";
this.template = _.template($("#print-view").html());
console.log(this);
return this;
},
events : {
},
render : function() {
var that = this;
$(this.el).html(this.template());
$('canvas').appendTo('.container3');
console.log(this);
return this;
}
});
答案 0 :(得分:1)
当您尝试通过.container3
选择器访问该元素时,它还不是文档树的一部分,但它已经包含在缓存的jQuery对象$el
中:
http://backbonejs.org/#View-$el
在缓存元素中查找.container3
this.$el('.container3').append(...)
应该这样做。