2013-02-27 20 views
5

Kiedy dynamicznie zmieniam ikonę, nie odzwierciedla ona zmiany na stronie, mimo że w znacznikach została zmieniona.Dynamiczna zmiana ikony w jQuery Mobile listview

Przykład:

 <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/

Odpowiedz

10

zrobiłem wam przykład robocza: http://jsfiddle.net/Gajotres/qgE6L/

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

Dzięki, to przeważnie działa. Jednak przełączanie między sprawdzaniem/fałszem, zamiast fałszem, pokazuje rozmazany znak +. Przełączanie między dowolnymi dwoma innymi pokazuje prawidłowo ikony – gberger

+1

Dzieje się tak dlatego, że ikona "false" nie istnieje. Spójrz na listę ikon: http://jquerymobile.com/demos/1.2.0-alpha.1/docs/buttons/buttons-icons.html. Możesz dodać własne niestandardowe ikony, ale to jest kolejne pytanie. Czy chcesz usunąć ikonę z wartością false? – Gajotres

+0

Chcę usunąć ikonę z fałszywą, tak – gberger