現在、SenchaTouchを使用してアプリケーションを構築しています。複数のアイテムを含むページに特定のカルーセルがあります。別のパネルのボタンをクリックすると、特定のアイテムがパネルに追加および削除されます。
問題:すべてが最初のクリックで計画どおりに機能しますが、同じボタンをもう一度クリックすると、機能が機能しなくなり、カルーセルディスプレイが空白になり、アイテムが表示されなくなります。
以下は、カルーセルの内容を変更するボタンのハンドラーですitemsCarousel
。関数はの項目に追加itemPanels[ b.getBadgeText() ]
しitemsCarousel
ます。最初の4回のクリック程度では、これはうまく機能します。その後、ボタンをクリックすると、カルーセル内のすべてのアイテムが消え、コンソールから手動でカルーセルを呼び出しても、コンテンツを追加または削除できなくなります。
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()
ます。 - これらすべてをコンソールから手動で実行します。
- 呼び出し(上記のように)およびの宣言で
autoDestroy
パラメーターを微調整します。.remove()
itemsCarousel
より多くのコードが必要な場合は、関連すると思われるものを投稿できますが、このスレッドを余分なコードで汚染したくありませんでした。ご協力いただきありがとうございます!
編集:誰かが同じ機能を再現する別の方法を知っているなら、私もそれを受け入れます。おそらく、1つのアイテムであるカルーセルを含むダミーホルダーコンテナを作成し、カルーセル全体を削除して、ボタンをクリックするだけで新しい(新しいアイテムを含む)1つを再度追加することを考えていますか?