初始加载时主干视图未正确显示
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;也许我只是将我的主页选项卡作为一种解决方法。以上是关于初始加载时主干视图未正确显示的主要内容,如果未能解决你的问题,请参考以下文章