Я написал простой плагин, чтобы сделать это либо для кнопки на основе ссылки, либо для кнопки <input type="button">
.Так что если у вас есть
<input type="button" id="start-button" val="Start"/>
или
<a href="#" data-role="button" id="start-button">Start</a>
В любом случае, вы можете изменить отображаемый текст с помощью
$("#start-button").changeButtonText("Stop");
Вот плагин:
(function($) {
/*
* Changes the displayed text for a jquery mobile button.
* Encapsulates the idiosyncracies of how jquery re-arranges the DOM
* to display a button for either an <a> link or <input type="button">
*/
$.fn.changeButtonText = function(newText) {
return this.each(function() {
$this = $(this);
if( $this.is('a') ) {
$('span.ui-btn-text',$this).text(newText);
return;
}
if( $this.is('input') ) {
$this.val(newText);
// go up the tree
var ctx = $this.closest('.ui-btn');
$('span.ui-btn-text',ctx).text(newText);
return;
}
});
};
})(jQuery);
... потому что добавление кода в зависимости от того, как именно jQuery Mobile отображает эти кнопки, не очень хорошая идея.Правило программирования: если вам нужно использовать хак, изолируйте его от хорошо документированного, многократно используемого фрагмента кода.