Как организовать выбор новости из списка (JavaScript + RSS or HTML парсер)
Парсирую данные с сервера с помощью HTML или RSS парсера.
У каждой записи имеется общий id для стиля CSS и уникальный идентификатор передающийся JS функции (в атрибуте class="id" или date-id="id"); Но так как эти данные загружаются с сервера или задаются в самом коде JS, то функция отслеживающая клики по этим записям для перехода с помощью WinJS.Navigation.navigate не работает. Собственно как сделать чтобы функция по отслеживанию клика по данным загружаемом из вне в этом же JS файле работала? Пишу в Visual Studio под Windows Market. Функция отслеживающая клики: function ToStory(eventInfo) { var link = eventInfo.target; var storyid = link.className; if ((storyid == '') || (storyid == 0)) { WinJS.Navigation.back(10).done(); } else { WinJS.Navigation.navigate("/pages/story/story.html"); } } Функция загрузки RSS данных: function loadRemoteXhr() { document.getElementById("topstory").innerHTML = ""; WinJS.xhr({ url: "ссылка на RSS" }).then( xhrParseXml, xhrError ); } function xhrParseXml(result) { var outputArea = document.getElementById("topstory"); var xml = result.responseXML; if (xml) { var items = xml.querySelectorAll("rss > channel > item"); if (items) { var length = Math.min(10, items.length); for (var i = 0; i < length; i++) { var link = document.createElement("li"); link.setAttribute("id", "tostory"); link.setAttribute("class", items[i].querySelector("link").textContent); link.innerText = items[i].querySelector("title").textContent; outputArea.appendChild(link); } } else { outputArea.innerHTML = "There are no items available at this time"; } } else { outputArea.innerHTML = "Unable to retrieve data at this time. Status code: " + statusCode; } } function xhrError(result) { var statusCode = result.status; var outputArea = document.getElementById("topstory"); outputArea.innerHTML = "Unable to retrieve data at this time. Status code: " + statusCode; } Вызов функций: //RSSload loadRemoteXhr(); //Навигация tostory.addEventListener("click", ToStory, false); <div id="blocks"> <div id="blocktit">Популярные истории</div> <ul id="topstory"></ul> </div> |
Возможно проблема из-за того, что в Visual Studio нельзя давать нескольким элементам одинаковое значение id, но как тогда можно написать обработчик в название объекта которого прибавить уникальный номер? например
<div id="bl1"></div> <div id="bl2"></div> И обработчик bl[i].addEventListener("click", ToStory, false); Как так можно сделать? |
Очень нужна помощь знающего Javascript
|
Часовой пояс GMT +3, время: 04:17. |