1

動的に生成されたボタンのリストがあります...

var output="";
var active;
var x;
var i;
var user_id=localStorage.get('user_id');#

for(x=0;x<dynamic_count;x++)
{
    output+="<div class='tbl' data-role='button' data-table_id='"+(x+1)+"'>";
    output+="<p class='center_text'>"+(x+1)+</p>";
    output+="<div>";
}

$('.table_holder').html(output).trigger('create');

//active and active_count come from AJAX request (I have missed this bit our of the code..active[0]=a table number where as active[1]= s user_id

for(i=0;i<active_count;i++)
{
    if(active[1]==user_id)
    {
        $('.tbl').find("[data-table_id='"+active[0]+"']").css('backgroundColor', 'red');
    }
}

残念ながら、これは目的の要素の背景色には影響しません。セレクター コードの問題なのか、css コードの問題なのか、jQuery Mobile の実装の問題なのかわかりません。

jQuery Mobile でスタイリングが必要な要素を動的に追加する場合、trigger('create')メソッドを使用して css を適用する必要があることに気付きました。

これは明らかに元の jQuery css で修正された css を上書きします。

4

2 に答える 2

2

まず、カスタム クラスを作成します。.custom-class

CSS:!important JQM のデフォルト スタイルをオーバーライドするために不可欠であることに注意してください。

.custom-class { background-color: red !important; }

コード:

属性を持つすべてのボタンを検索し[data-table_id]、値を比較して適用します.custom-class

var buttons = $(document).find('a[data-table_id]');

$.each(buttons, function () {
 $(this).removeClass('custom-class');
 if ($(this).attr('data-table_id') == user_id) {
  $(this).addClass('custom-class');
 }
});

類似のデモ

于 2013-04-28T20:25:34.177 に答える
0

これを試して

$('.tbl').find("[data-table_id='"+active[0]+"']").css('background-color', 'red');

このように背景色を割り当てようとしています

$('.tbl').find("[data-table_id='"+active[0]+"']").css('backgroundColor', 'red');

jquery では、backgroundColor の代わりに background-color を使用する必要があります

于 2013-04-28T09:37:38.503 に答える