http://jsfiddle.net/kE8GJ/のコードを使用して、目的を達成できます。コードの最も重要な部分は次の条件であることに注意してください。
var element;
if ($(this).hasClass("ui-li-link-alt")) {
element = $(this);
}
else {
element = $(this).closest('li.ui-li');
}
element
.removeClass("ui-btn-up-c ui-btn-hover-c")
.addClass("ui-btn-hover-e")
.attr("data-theme", "e");
li
これにより、左側のボタンの要素または右側のボタンの要素のいずれかにテーマが正しく設定され、a
最終的には、クリックした要素に新しいテーマを適用する効果があります。これが目標のようです。
あなたが見てTypeError
いたことは、あなたの電話に関係していると思います.button()
。jQuery Mobileリストビューの要素は通常ボタンとして扱われないため、このような呼び出しは問題を引き起こす可能性があります。のようなすべての呼び出し.trigger('create')
は、レベルで行う必要がありlistview
ます。
編集に応じて、テーマを正常に切り替えるには、クラスを手動で追加および削除する必要があります。それ以外の場合、古いテーマのクラスは引き続き存在します。たとえば、テーマe
からc
に切り替えると、ui-btn-up-e
またはは要素ui-btn-hover-e
上にli
とどまるため、テーマに戻らないように見えますc
。これが実際に動作しているのは、http: //jsfiddle.net/wu86C/で確認できます。
最も重要なコードは、ここの2行目です(およびからc
への切り替えに相当しますe
)。
var li = $(this).closest('li');
li.removeClass("ui-btn-up-e ui-btn-hover-e").addClass("ui-btn-hover-c");