gpt4 book ai didi

backbone.js - DomReady 与 backbone.js

转载 作者:行者123 更新时间:2023-12-04 02:49:13 24 4
gpt4 key购买 nike

我正在使用 backbone.js 创建单页应用程序。我是 backbone 的新手,所以请原谅任何错误的语义。

我的问题是渲染 View 时。

最初,我的 index.html 中有一个 javascript 执行一些 dom 操作(图像 slider )。

JS 包含在 $(window).load() 中,因此启动时一切正常。除非页面是从 url 加载的,否则代码显然不会执行。该代码不会从主干 View 或路由器运行。因此页面在没有 dom 操作的情况下加载。

我试图将我的代码插入到 View 中的渲染和初始化函数中,但无济于事。我应该将此代码添加到路由器吗?这似乎有点骇人听闻。

我应该在哪里包含“dom ready”代码?和/或是否有更好的方法来管理主干中加载的 View 及其 dom 元素?

代码:

home.js

window.HomeView = Backbone.View.extend({
initialize:function () {
this.render();
},

render:function () {
$(this.el).html(this.template());

this.startOrbits();
return this;
},



startOrbits:function(){
$(window).load(function() {
$('#orbit-main').orbit({ fluid: '16x6', swipe:true });
$('#orbit-news').orbit({ fluid: '8x6', bullets: true, directionalNav:false, captions:true, advanceSpeed: 9000});
});
},




});

最佳答案

But when I go to another view, then back, the code obviously doesn't excite

我不太清楚那是什么意思。将“激发”部分放在一边,您不会“去”观看; View 只是向页面添加元素或向现有元素添加逻辑的方法。

不过,如果我不得不猜测的话,我会想象您正在使用 Backbone 路由器在虚拟“页面”之间移动(并且您使用 View 来创建这些页面)。如果是这种情况,您需要查看 Backbone 路由器事件:

http://documentcloud.github.com/backbone/#Router

http://documentcloud.github.com/backbone/#FAQ-events

具体来说,我认为您想将事件处理程序(在您的路由器上)绑定(bind)到“route:nameOfYourRoute”,或者只是 :route”(如果您想在每个虚拟页面加载时触发您的逻辑)。

希望对您有所帮助,如果我的猜测有误,请编辑您的问题以进行澄清。

关于backbone.js - DomReady 与 backbone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095780/

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