gpt4 book ai didi

javascript - Backbone.marionette : jQuery document. 已准备好,未在路线上运行

转载 作者:行者123 更新时间:2023-12-02 18:29:35 25 4
gpt4 key购买 nike

因此,我有一个从登录按钮路由到仪表板的 Web 应用程序,我在其中运行 initialize() 函数,其中包含 document.ready() block 。问题是,在主干路由上,似乎 document.ready() block 没有运行。这里有一些需要澄清的代码:

这是我的着陆页 View 中的一个事件:

events:
'click .pure-menu .signin':
() ->
application.router.navigate('dash', {trigger: true})

然后将应用程序路由到我的仪表板 View :

module.exports = class DashView extends Backbone.Marionette.ItemView
id: 'dash-view'
template: template

initialize: ->

$ ->
$(".gridster ul").gridster(
widget_margins: [10, 10]
widget_base_dimensions: [140, 140]
)

我有一个 jQuery document.ready() block ,其中包含一些在加载 dom 后运行的代码。

我正在使用Gridster库,但是当页面路由时,此代码不会运行,因为 Gridster 网格未初始化。

当我刷新页面时,一切都会按预期进行。

我猜当页面路由时,jQuery 不会收到“dom returned”事件,因此该 block 不会被执行?我不知道。任何帮助将不胜感激。

为了解决使用黑客问题,有谁知道如何通过页面刷新在主干中路由?

最佳答案

我认为您应该在 onDomRefresh 方法中添加代码,而不是 initialize

Initialize 在 View 创建后立即被调用,因此 View 的元素当时还没有放置在 DOM 中,而 onDomRefresh 在 View 渲染、显示在 DOM 中或被重新加载后触发。渲染,因此它可能更适合您的需求。

您可以在文档中查看:Marionette's view

关于javascript - Backbone.marionette : jQuery document. 已准备好,未在路线上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962247/

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