6

これは私のコードです:

function togglePOIAndDisplay(toggle){
    var display = $(toggle).attr('data-icon');
    console.log(display);
    if(display == 'minus'){
        $(toggle).attr('data-icon', 'check');
            console.log(display);
    } else {
        $(toggle).attr('data-icon', 'minus');
        removeMarkers(toggle);
    }
}   

コンソールにログminusを記録し、最初のif()ブロックに移動して、displayAllPOIOfType()を正しく実行しますが、正しく設定されていても、値の変更は反映されません。それが明らかに属性を正しく読み取り/設定するためです。

電話する必要のあるアップデートfunctionはありますか?ありがとう

4

4 に答える 4

16

これは、それがボタンであるか、選択であるか、またはdata-icon属性を受け入れる他の何かであるかによって異なります。残念ながら、jQuery Mobileは、data-*属性によって制御されるものを動的に変更するための優れたサポートを備えていないため、属性を調整し、子要素のクラスを変更する必要があります。

ボタンの場合、次のようなものが機能するはずです。

$(buttonSelector).attr('data-icon', newIcon);
                 .find('.ui-icon')
                     .addClass('ui-icon-' + newIcon)
                     .removeClass('ui-icon-' + oldIcon);
于 2012-09-27T19:15:43.057 に答える
8

アイコンが次のようなボタンの中にある場合:

<a id="buttonID" href="#" data-role="button" data-icon="delete">Button</a>

buttonMarkup関数を使用してアイコンを変更できます。

$('#buttonID').buttonMarkup({ icon: "check" });

またはカスタムアイコンに:

$('#buttonID').buttonMarkup({ icon: "my-icon" });

例: http: //jsfiddle.net/u8fnJ/1/

この投稿に示されているように、jQueryMobileを使用してヘッダーのボタンを更新するにはどうすればよいですか?

于 2015-01-01T00:47:20.717 に答える
0

http://jsfiddle.net/phillpafford/8pwFK/29/

カスタムアイコンをスターアイコンに変更します。

$(this).attr('data-icon','star');
$(this).find('.ui-icon').removeClass('ui-icon-custom').addClass('ui-icon-star');

この例は簡単に調べることができます。

于 2013-11-01T09:40:19.163 に答える
-1

リストビューの場合、スパンを挿入する必要があります。

$("#times").off('click','li').on("click","li",function() {

 /* add a checkbox when you click the listview li  */
 $(this).find('div.ui-li').append('<span class="ui-icon ui-icon-check ui-icon-shadow">&nbsp;</span>');

});
于 2013-09-27T01:45:43.557 に答える