Динамична промяна на темата за данни на бутона в JQueryMobile

Имам малък проблем с динамичната промяна на динамичната тема на бутон. От друга публикация се научих да използвам:

<input type="button" data-inline="true" data-mini="true" data-theme="c" id="my-button" value="Save">
<script>
$("#my-button").buttonMarkup({ theme: 'a' }).button('refresh');
</script>

Технически това работи, докато не прекарам курсора на мишката - тогава бутонът се връща към темата за данни "c". Има ли по-добър начин за динамична промяна на темата?


person Anthony    schedule 29.03.2013    source източник


Отговори (2)


ако използвате бутон по-долу

 <a href="/bg#" id="my-button2" data-role="button" data-theme="e">Save2</a>

Можете да промените темата, както е показано по-долу

$('#my-button2').attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");

вижте цигулка на живо тук http://jsfiddle.net/mayooresan/jfDLU/

person Jay Mayu    schedule 29.03.2013

Опитах се да намеря отговора за този, но стигнах до това решение, след като разгледах DOM структурата. Създадох функцията по-долу за превключване на темата при щракване върху бутона. hover класът трябва да се адресира само когато се променя темата на същия бутон, който щраквате. Изглежда, че работят за елемент на бутон за въвеждане. (jqm версия 1.3.2)

function changeButtonTheme(buttonSelector,toTheme){
    var currentTheme  = $(buttonSelector).attr('data-theme');
    var parent  = $(buttonSelector).parent();
    $(buttonSelector).attr("data-theme", toTheme).removeClass("ui-btn-up-"+currentTheme).addClass("ui-btn-up-"+toTheme);
    parent.attr("data-theme", toTheme).removeClass("ui-btn-up-"+currentTheme).addClass("ui-btn-up-"+toTheme);
    //parent.removeClass("ui-btn-hover-"+currentTheme).addClass("ui-btn-hover-"+toTheme);
}
person djayavelu    schedule 02.09.2013
comment
Все още не съм го тествал, но мисля, че вашият код ще промени само състоянието на btn-up. Все още има манипулатори на събития в паметта, които биха я променили до старото състояние при задържане на мишката или надолу. Може и да греша обаче.. - person Anthony; 03.09.2013