我在骨干网上有一个视图,我想创建一些属性。
我做到了:
var ProgrammeDetailsView = Backbone.View.extend({
$infoResult: $('#info-result'),
$castingResult: $('#casting-result'),
$broadcastResult: $('#broadcast-result'),
$testResult: $('#test'),
[...]
我惊讶地得到了这个结果:
console.log(this.$infoResult); -> Array { selector="#test", forEach=forEach(), reduce=reduce(), more...}
正如你所看到的,我使用了“this。$ infoResult”,它应该返回一个id为“#info-result”的对象,但它实际上是返回的最新变量。
如果我这样做:
var ProgrammeDetailsView = Backbone.View.extend({
$infoResult: '#info-result',
$castingResult: '#casting-result',
$broadcastResult: '#broadcast-result',
$testResult: '#test',
我没有问题,cf:
console.log(this.$infoResult); -> "#info-result"
你知道为什么吗?
答案 0 :(得分:0)
在对象初始化时,您确定所引用的元素是否可用?很多时候,可能正在创建此对象的视图或包含它的HTML可能尚未修改DOM,因此您将无法获得对它的引用。