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");