2012-12-14 138 views
0

我有一個主頁視圖,我想在初始加載頁面時隱藏一些div。但是,所有的div在初始加載時都是可見的。如果我在這個屏幕的標籤並返回,divs被隱藏。主要功能叫做骨幹視圖在初始加載時不能正確顯示

$(document).ready(app.init) 

所以我知道dom已經準備好了。這是幾乎工作的視圖渲染功能,只是不會在加載時隱藏div。這是要調用的最後一個函數,所以沒有其他影響它。

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

任何想法

+1

你有重複的ID嗎? –

+0

抱歉祗園,我會如何檢查?這是ny渲染函數http://jsbin.com/urebug/1/edit –

+0

我是在dom中引用的。如果您在dom中有重複的id,jQuery將只返回第一個匹配(如果是這種情況,您可以使用'$('[id = duplicate-id]')。作爲一個附註,我注意到你在你的jsbin中調用了'window.top.console.log'。如果你的代碼運行在一個iframe中,並且你試圖訪問(隱藏)父框架上的元素,那麼你的操作可能會受到限制(由於相同的原始策略)......如果是這種情況,你可以嘗試像'$ window.top.document).find('#id')' –

回答

0

一種可能性是,你有一個時機的問題。您是否嘗試過:

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

這將使所以你的動畫不會開始,直到渲染後(和任何叫它)結束。

+0

感謝您的建議,雖然沒有喜悅。甚至拖延更長時間。嘗試通過執行$(this.el).remove();來清空el。也許我只是將我的主頁選項卡作爲解決方法。 –