2011-03-24 46 views
0

我目前正在建設使用煎茶觸摸應用程序。我們在包含多個項目的頁面上有一個Carousel。在單擊不同面板上的按鈕時,某些項目將被添加並移除到面板。項目在煎茶觸摸旋轉木馬消失

問題:計劃用於第一次點擊,但點擊後點擊相同的按鈕再次所有作品,功能停止工作,旋轉木馬顯示器變爲空白,與沒有可見的項目。

以下是按鈕的處理程序,用於更改輪播itemsCarousel的內容。該功能將itemPanels[ b.getBadgeText() ]添加到itemsCarousel的項目中。對於前四次點擊,這個效果很好。在此之後,當我點擊一個按鈕時,傳送帶中的所有項目都會消失,並且我無法添加或刪除更多內容,甚至無法從控制檯手動調用傳送帶。

handler: function(b, e) { 
    itemsCarousel.insert(1, itemPanels[ b.getBadgeText() ]); 
    itemsCarousel.doLayout(); itemsCarousel.doComponentLayout(); 
    itemsCarousel.setActiveItem(1); 
    itemsCarousel.remove(0, false); 
} 

事我已經嘗試:

  • 通過在時隙0插入項改變命令,設置0活性,然後除去1
  • 將javascript斷點放在每行上,看看傳送帶空白處。有時發生在.insert()聲明中,有時發生在.remove()
  • 從控制檯手動執行所有操作。
  • 調整在.remove()呼叫的autoDestroy參數(如上文所示)和在itemsCarousel聲明。

如果您需要更多的代碼,我可以發佈您認爲可能相關的任何內容,我不想用多餘的代碼污染此線程。謝謝你的幫助!

編輯:如果有人知道另一種方式來重現相同的功能,我願意接受這一點。我在想,也許可以創建一個帶有一個物品的虛擬持有人容器,一個旋轉木馬,並刪除整個旋轉木馬,並在點擊按鈕時重新添加一個全新的項目(使用新項目)?

+0

如果您使用控制檯很舒服,確保carousel.items集合包含你認爲它應該之前和之後點擊。看着控制檯中的dom可能也會提供一些線索。 – 2011-03-24 20:23:31

+0

@Jason,謝謝你的迴應。我在違規點擊之前和之後檢查了DOM,一切看起來很正常。即使點擊後,DOM顯示的carousel.items正確的項目,他們只是不正確顯示。 當我最初使用'carousel.removeAll()',然後試圖重新添加項目時,我有一些類似的症狀,但我轉移到此方法,因爲它暫時工作。我覺得我接近最新的錯誤,但我不能釘它! – Ian 2011-03-24 22:15:39

回答

0

好吧,我想通了如何使用不同的方法來再現功能。

我建立多個轉盤,每片含我想,然後有一個根面板簡單地設置基於按鈕按壓活動圓盤傳送帶面板。例如,層次結構看起來像現在這樣:

rootPanel 
{ 
    carousel[0] 
    { 
     panel1 
     panel2 
    } 
    carousel[1] 
    { 
     panel3 
     panel4 
    } 
    ... 
} 

和我進行rootPanel.setActiveItem(x)顯示新的旋轉木馬。