Настройки хранения jQuery - PullRequest
0 голосов
/ 11 апреля 2010

Я пытаюсь создать проигрыватель для радиостанции, которая автоматически обновляет текущую песню из файла XML, проблема в том, что я не хочу, чтобы она обновляла пользовательский интерфейс (updateSongIMG), если песня фактически не изменилась. У меня есть скрытый div с именем settings_songid, в котором хранится идентификатор песни, и он должен проверить это по значению в файле XML, если оно отличается, то он должен обновить его. Проблема в том, что нижеприведенная функция на самом деле не работает, она прекрасно обрабатывает все данные XML, но не вызывает updateSongIMG, так как не выполняет 'if'.

function loadXML() {
    $.get('player.xml', function(d){
        $(d).find('onair').each(function(){
            var $onair = $(this); 

            var show_name = $onair.find('showname').text();
            var song_l1 = $onair.find('songline1').text(); 
            var song_l2 = $onair.find('songline2').text();  
            var song_img = $onair.find('songimg').text(); 

            var song_id = $onair.find('song_id').text(); 
            var old_song_id = $("#settings_songid").html();

            if (!old_show_id==show_id){
                $("#settings_songid").html(song_id);

                updateSongIMG(song_img,song_l1,song_l2);
            }
        });
    });
};
​

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

Где они определены old_show_id и show_id?!

Вы можете использовать http://api.jquery.com/jQuery.data/ для такого рода вещей.

0 голосов
/ 11 апреля 2010

Попробуйте .text():

 var old_song_id = $("#settings_songid").text();

и ваше if предложение неверно. Я думаю, что вы имеете в виду song, а не show:

if(old_song_id != song_id)

Для хранения произвольных данных, взгляните на метод jQuery .data(). Это гораздо удобнее, чем хранить данные в скрытом div.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...