jquery mobile data-icon - PullRequest
       0

jquery mobile data-icon

5 голосов
/ 19 июля 2011

Привет У меня возникли проблемы с динамическим изменением некоторых атрибутов в jquery mobile по некоторым причинам.Я вижу, что атрибуты меняются в разметке, когда я вызываю соответствующие методы, которые я использую, но внешний вид элементов не меняется.Есть ли необходимость в повторной инициализации списков и т. Д. В Jquery Mobile?

Кстати, здесь приведен код, демонстрирующий настройку атрибутов:

$('.className').each(function(){
    if ($(this).text() == tempLoc){
    console.log('FOUND MATCH WITH tempLoc and ' + $(this).text());
    $(this).attr('data-icon','alert');
    $(this).attr('data-theme','e');
}
});

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

ОБНОВЛЕНИЕ: Я нашел способ обновить значок данных, но он, конечно, все еще грязный и излишне так.Вы можете получить доступ к значку данных, используя следующий метод:

$(this).children('div.ui-btn-inner').children('span.ui-icon').removeClass('ui-icon-arrow-r');
$(this).children('div.ui-btn-inner').children('span.ui-icon').addClass('ui-icon-alert');

В этом случае $ (this) относится к самой кнопке, а сам значок находится в ее дочернем диапазоне ui-btn-inner.ui-icon-arrow-r приведет.Замените те классы, которые вы используете в этом случае.Если кто-нибудь знает, как правильно обновить кнопки, я был бы признателен.

Ответы [ 3 ]

12 голосов
/ 29 апреля 2012
$("#myButtonName").buttonMarkup({ icon: "star" });

Это изменит его на лету.Вот мой код:

$(".menu-button").toggle(
    function()
    {            
        $(this).buttonMarkup({ icon: "star" });
        $(".navigation-menu-container").show();
    },
    function()
    {
       $(".navigation-menu-container").hide();    
    }
);

Смотрите документы здесь:

http://jquerymobile.com/test/docs/buttons/buttons-options.html

4 голосов
/ 19 июля 2011

Связанный:

Live Пример:

Ссылка на связанный вопрос:

2 голосов
/ 30 ноября 2011

Для этого вам действительно следует использовать селекторы JQM, jqmData (), как указано в документации .

, например

$('.className').each(function(){
   if ($(this).text() == tempLoc){
     console.log('FOUND MATCH WITH tempLoc and ' + tempLoc);
     $(this).jqmData('icon','alert');
     $(this).jqmData('theme','e');
   }
});

Надеюсь, это поможет решить вашу проблему

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