虽然dom尚未加载,但如何在骨干网中声明jquery元素

nim*_*rod 1 javascript jquery backbone.js

我将dom元素列表定义为Backbone视图对象的属性,如下所示:

el : $("body"),
elTicket : $('#ticket'),
...
Run Code Online (Sandbox Code Playgroud)

但是,这些jquery对象指向的dom尚未生成.

我出现这个问题时常常做的是将jquery对象包装在一个函数中并返回它:

el : function(){
    return $('body');
},
...
Run Code Online (Sandbox Code Playgroud)

然后导致一条丑陋的线条:

this.el().append('dasd');
Run Code Online (Sandbox Code Playgroud)

有更好的解决方案吗?

rai*_*7ow 6

文档示例所示,您应该使用选择器(而不是jQuery对象)作为Backbone.View属性的值:

App.MyView = Backbone.View.extend({
    el: 'body',
    elTicket: '#ticket',
    ...
});
Run Code Online (Sandbox Code Playgroud)