2013-02-27 3 views
5

Когда я динамически меняю значок, он не отражает изменения на странице, хотя в разметке он был изменен.Динамическое изменение значка в jQuery Mobile listview

Пример:

 <ul data-role="listview" data-autodividers="true" data-filter="true" data-inset="true"> 
     <li data-icon="check"><a href="#">Adam Kinkaid</a></li> 
     <li data-icon="check"><a href="#">Alex Wickerham</a></li> 
     <li data-icon="check"><a href="#">Avery Johnson</a></li> 
     <li data-icon="check"><a href="#">Bob Cabot</a></li> 
     <li data-icon="check"><a href="#">Caleb Booth</a></li> 
     <li data-icon="check"><a href="#">Christopher Adams</a></li> 
     <li data-icon="check"><a href="#">Culver James</a></li> 
    </ul> 

$("li").tap(function() { 
    //Alert the old icon 
    alert($(this).jqmData("icon")); 

    //Toggle 
    $(this).jqmData("icon") == "false" ? $(this).jqmData("icon", "check") :    $(this).jqmData("icon", "false"); 

    //Alert the new icon 
    alert($(this).jqmData("icon")); 
}); 

http://jsfiddle.net/Mc97V/

ответ

10

Я сделал вам рабочий пример: http://jsfiddle.net/Gajotres/qgE6L/

$('#index').live('pagebeforeshow',function(e,data){  
    $("li").tap(function() { 
     $(this).buttonMarkup({ icon: "edit" }); 
    }); 
}); 
+0

Спасибо, это в основном работает. Однако, переключение между check/false, вместо false, показывает размытие +. Переключение между любыми двумя другими показывает правильные значки – gberger

+1

Это потому, что значок «false» не существует. Взгляните на этот список значков: http://jquerymobile.com/demos/1.2.0-alpha.1/docs/buttons/buttons-icons.html. Вы можете добавить свои собственные значки, но это другой вопрос. Или вы хотите удалить значок с помощью false? – Gajotres

+0

Я хочу удалить значок с ложным, да – gberger

Смежные вопросы