2

jqm 1.3 Listview を使用していますが、onClick を正常にキャプチャしています。

  function handle_onClick( )
    { jQuery( "#my_panel li" )
        .each( function( )
             { jQuery( this ).attr( 'data-theme' , "a" ).trigger('refresh') ;
             }) ;
   } 

フィドルを参照してください (編集: 更新されたフィドル

しかし、のデータテーマは<li>更新されていません。

実際には、私<li>のは同じテーマを使用しません。

プログラムで個別に変更する方法はありますか?

4

2 に答える 2

1

これが実際の例です: http://jsfiddle.net/Gajotres/YNYnU/

$('#my_panel li' ).on( 'click' ,  function( argo_e ) { 
    $(this).attr('data-theme','d');
});

リストビュー マークアップを拡張するために間違った関数を使用していました。この場合、リストビュー マークアップを強化する必要はありません。data-theme 属性を正しい li 要素に設定するだけで十分です。

このトピックに関する私の他の回答/記事もご覧ください: https://stackoverflow.com/a/14550417/1848600。すべての jQuery Mobile コンポーネントには、そのマークアップを強化するために使用される個別の関数があり、そのすべてがその記事にリストされています。

そして、ここに私の修正を加えたコードの例があります: http://jsfiddle.net/Gajotres/AeBuV/

于 2013-03-07T14:25:11.163 に答える
1

鍵は次のとおりです。

  • ui-btn-up-### および ui-btn-hover-### クラスを削除し、正規表現を使用して、jqm が作成する長いクラス文字列からそれらを選択します。
  • 次に addClass( ui-btn-up-NEW_THEME) 、
  • 次に、データテーマを更新します

フィドルを参照してください:

function handle_onClick( argoj_element , args_language_id )
  { 
    jQuery( "#my_panel li" )
      .each( function( )
        { var lvb_active = ( jQuery( this ).attr( 'data-lang_id' ) == args_language_id ) ;

          var lvs_theme_default = 'a' ; 
          var lvs_theme_active  = 'e' ;  
          var lvs_theme         = lvb_active ? lvs_theme_active : lvs_theme_default  ;

          var lvs_current_class  = jQuery( this ).attr('class')                   ;
          var lvs_removes        = lvs_current_class.match(/ui-btn-up-\w+/gi ).join( " " ) ;
              lvs_removes       += " "  ;
              lvs_removes       += (lvs_current_class.match(/ui-btn-hover-\w+/gi )||[]).join( " " ) ;
          var lvs_adds           = "ui-btn-up-" + lvs_theme ;

          jQuery( this ).removeClass( lvs_removes )  
                        .addClass   (  lvs_adds   ) 
                         .attr( 'data-theme' , lvs_theme ) ;  
         }) ;             
  } 
于 2013-03-07T23:51:48.073 に答える