Почему мои изображения не меняются, когда я меняю их атрибут источника? JQuery Mobile & Phone Gap - PullRequest
2 голосов
/ 31 марта 2011

Я пишу приложение jquerymobile / phonegap, в котором мне нужны маленькие значки, чтобы изменить их в зависимости от того, что пользователь выбирает из выпадающего списка, или в зависимости от различных значений, возвращаемых из базы данных.

Вот небольшой фрагмент кода

        if(sqlData[0][6]==1){
            myAlert('urgent');
            $('#icon3s').attr("src", './icons/Urgent.png');
        }else{
            myAlert('not urgent');
            $('#icon3s').attr("src",'./icons/not_urgent.png');
        }
         $('img').each(function(){
             console.log($(this).attr('id')+" src = "+$(this).attr('src'));
        });

Как вы можете видеть, после смены источника изображения я пошел дальше и распечатал все изображения, просто чтобы убедиться, что источник был установлен правильно, и он ....

Хотя само изображение не меняется, хотя атрибут был успешно обновлен ...

Спасибо!

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Действительно старый пост, но я столкнулся с той же проблемой (также используя Phonegap + jQuery Mobile).При срабатывании события касания я пытался изменить <img> src на другое изображение:

HTML:

<div class="profileNavGroup" id="myTeamsGroup">
    <img class="profileNavImage" src="images/tempProfilePic.jpg" />
    <h5 class="profileNavText">My Teams</h5>
</div>

jQuery:

$("#myTeamsGroup").live('tap', function() {
    $("#myTeamsGroup .profileNavImage").attr("src", "images/tempProfilePic.jpg");
}):

Это не сработало, и, поиграв с ним в течение часа, я понял, что это файл изображения.После изменения его на другое изображение оно обновилось корректно.

Мораль истории: возможно, изображение, которое вы используете, просто не отображается?Попробуйте изменить его на другое изображение (или измените тип файла изображения) и посмотрите, поможет ли это.Мое изображение показывалось нормально при предварительном просмотре в Windows или любом другом приложении, но оно никогда не появилось бы в моем приложении для Android.

0 голосов
/ 31 марта 2011

Если значок находится в элементе типа jQuery Mobile, например в виде списка, вам может потребоваться обновление - например, $('#listId').listview('refresh');

0 голосов
/ 31 марта 2011

Когда вы меняете attr.изображения, возможно, ваш элемент не получает повторную визуализацию.Попробуйте заменить элемент, я думаю, что это должно работать.

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