2013-02-27 7 views
5

アイコンを動的に変更すると、マークアップ内の変更が反映されていても、ページ上の変更は反映されません。jQuery Mobileのアイコンを動的に変更する

例:

 <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

おかげで、これは主に動作します。しかし、falseの代わりにcheck/falseを切り替えると、ぼやけた+が表示されます。任意の2つの間でトグルするとアイコンが正しく表示されます – gberger

+1

アイコン「false」が存在しないためです。このアイコンリストを見てください:http://jquerymobile.com/demos/1.2.0-alpha.1/docs/buttons/buttons-icons.html。独自のカスタムアイコンを追加することもできますが、それは別の質問です。または、偽のアイコンを削除したいですか? – Gajotres

+0

私は偽のアイコンを削除したい、ええ – gberger

関連する問題