初始加载时主干视图未正确显示

Posted

技术标签:

【中文标题】初始加载时主干视图未正确显示【英文标题】:backbone view not displaying correctly on initial load 【发布时间】:2012-12-14 21:07:43 【问题描述】:

我有一个主页视图,我想在页面初始加载时隐藏一些 div。然而,所有的 div 在初始加载时都是可见的。如果我在此屏幕上的选项卡并返回,则 div 将被隐藏。 main函数内部调用

$(document).ready(app.init)

所以我知道 dom 已经准备好了。这是几乎可以工作的视图渲染功能,只是不会在加载时隐藏 div。这是最后一个被调用的函数,所以没有其他任何影响它。

$('#course').slideUp();
$('#scores').slideUp();
$('#next').slideUp();
$("#content_home").trigger("create");
return this;

任何想法

【问题讨论】:

你有重复的 id 吗? 对不起只园,我该如何检查这个?这是 ny 渲染函数 jsbin.com/urebug/1/edit 我指的是 dom。如果您在 dom 中有重复的 id,jQuery 将只返回第一个匹配项(如果是这种情况,您可以使用 $('[id=duplicate-id]'))。作为旁注,我注意到您在 jsbin 中调用了 window.top.console.log。如果您的代码在 iframe 中运行并且您尝试访问(隐藏)父框架上的元素,您的操作可能会受到限制(由于相同的来源策略)......如果是这种情况,您可以尝试类似 $(window.top.document).find('#id') #course 在哪里?是否在您的视图的el 内? 我已更新为包含 html,jsbin.com/urebug/2/edit。删除了 div 的 jsbin.com/urebug/2/edit 中的多余代码 【参考方案1】:

一种可能性是您有时间问题。你试过了吗:

render: function() 
    window.setTimeout(function() 
        $('#course').slideUp();
        $('#scores').slideUp();
        $('#next').slideUp();
        $("#content_home").trigger("create");
    , 1);
    return this;

这将使您的动画在渲染(以及任何名称)完成后才开始。

【讨论】:

感谢您的建议,但不高兴。甚至拖延更长时间。尝试通过 $(this.el).remove(); 清空 el;也许我只是将我的主页选项卡作为一种解决方法。

以上是关于初始加载时主干视图未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

子视图主干渲染上的事件

SwiftUi Tabview 在开始时未正确加载该视图

viewController 视图未加载

在未实例化的视图控制器上设置徽章值的正确方法?

使用 pushViewController 时,我的视图控制器未正确初始化?

列表视图在 jQuery mobile/phonegap 中初始时未加载