2010-10-27 1 views
1

Недавно я создал функцию XML-файла -> html javascript для приложения iPhone, которое я разрабатываю в jQTouch. Original Учебник & Код.Обновить XML-канал при нажатии (jQTouch)

Мне было интересно, если кто-нибудь узнает быстрый и простой способ обновить данные xml (возьмите фид снова), когда будет нажата ссылка.

например. в коде:

<div id="btns"> 
<ul> 
    <li><a href="#feed">Go to feed</a></li> <!-- When i click this, I want the getDataFeed function to dump the data & rerun. --> 
</div> 
<div id="feed"> 
<div id="content_from_feed_inserted_here"></div> 
</div> 

в JavaScript:

$(document).ready(function() { 

function getDataFeed() { 

    $('.loadingPic').show(); // show progress bar 

    $.get('http://xxxxxxx.com/information.xml', function(d) { 

    $(d).find('location').each(function(){ 

     var $location = $(this); 
     var the_data = $location.find('xml_data').text(); 

     var collected_data = collected_data += '<span>' + the_data + '</span>' ; 
     $('#content_from_feed_inserted_here').empty().append($(collected_data)); // empty div first 

     $('.loadingPic').fadeOut(1400); // remove progress bar 
    }); 

} 

// run on page load 
getDataFeed(); 

// how do i also get it running when i click <li><a href="#feed">Go to feed</a></li> 

}); 

Заранее большое спасибо за вашу помощь!

ответ

2

Проверить это: Переместить функцию getDataFeed() {..} вне функции готовности и зафиксировать событие клика по ссылке. set id = "feed" в <a>.

function getDataFeed() { 

    $('.loadingPic').show(); // show progress bar 

    $.get('http://xxxxxxx.com/information.xml', function(d) { 

    $(d).find('location').each(function(){ 

     var $location = $(this); 
     var the_data = $location.find('xml_data').text(); 

     var collected_data = collected_data += '<span>' + the_data + '</span>' ; 
     $('#content_from_feed_inserted_here').empty().append($(collected_data)); // empty div first 

     $('.loadingPic').fadeOut(1400); // remove progress bar 
    }); 
} 

$(document).ready(function() { 

    // how do i also get it running when i click <li><a href="#feed" id="#feed">Go to feed</a></li> 
    $('#feed').click(getDataFeed); 

    // run on page load 
    getDataFeed(); 

}); 
+0

jqtouch является устаревшим. Используйте http://sencha.com или http://jquerymobile.com/ – angelcervera

+0

Эй, спасибо за код, кнопка все еще не работает. Любые другие идеи? – Nelga

+0

также - на jqtouch - не обязательно так, он довольно активен в github, плюс это потребует перезаписи приложения. К сожалению, jquery mobile по-прежнему только в alpha & не имеет статических таблиц/заголовков, а sencha совершенно другой - объектно-ориентированный js. – Nelga