Я пишу свое первое приложение для Windows 8, но уже застрял.
Что я хочу сделать, так это отобразить элемент html/winjs, в зависимости от того, какой индекс щелкнут в списке. Текущий код, который я написал, работает до некоторой степени. Он отобразит первый элемент (albumListView), но после этого другие элементы отображаться не будут. Я прочитал документы WinJS, но до сих пор не могу понять, что я делаю неправильно.
Что я делаю неправильно? И есть ли более простой способ сделать то, что я пытаюсь достичь?
Вот код, который я написал:
Мой HTML:
<div id="albumListView" class="hidden" data-win-control="WinJS.UI.ListView" data-win-options="{itemTemplate:select('#albumTemplate'), layout:{type:WinJS.UI.GridLayout}, selectionMode:'none'}"></div>
<div id="songsListView" class="hidden" data-win-control="WinJS.UI.ListView" data-win-options="{itemTemplate:select('#songsTemplate'), layout:{type:WinJS.UI.ListLayout}}"></div>
Мой CSS:
.hidden {
display:none;
}
My JS:
function hidePanelViewItems() { //hide all panel items
var items = [albumListView, songsListView];
for (var i = 0; i < items.length; i++) {
WinJS.Utilities.addClass(items[i], "hidden");
}
return true;
}
function showItem(item) { //show a single item in the panel
hidePanelViewItems();
WinJS.Utilities.toggleClass(item, "hidden");
return true;
}
args.setPromise(WinJS.UI.processAll().done(function () {
//hide all panel listviews
hidePanelViewItems();
//show the album view as a default
showItem(albumListView);
//deal with menu item clicks
menuListView.addEventListener("iteminvoked", function (eventInfo) {
switch (eventInfo.detail.itemIndex)
{
case 0:
showItem(albumListView);
break;
case 1:
showItem(songsListView);
break;
}
});
}))
Заранее спасибо за любые ответы :)
DOM Inspector
, чтобы увидеть, правильно ли CSS применяется ко второмуListView
? - person louis.luo   schedule 03.01.2013