Стиль кнопок jquery для мобильных устройств теряется при локализации
Я работаю над проектом http://jquerymobile.com/, используя библиотеку локализации i18Next
HTML-код
<div id="messageboxPage" data-role="page" data-theme="a">
<div data-role="header" data-theme="a"></div>
<div id="messagePage" data-role="content" data-theme="a">
<div class="barContainer" id="barContainer">
<div class="ui-bar ui-bar-b ui-btn-corner-all" style=" margin-top: 40px; padding-left: 0px;padding-right:10px; ">
<div style="float: left; width: 30%;"> <a href="#" id="aNo" onclick="SetActive('aNo')" class="LnkButton" data-theme="a" data-role="button" data-inline="true" data-mini="true">Cancel</a>
</div>
<div style="float: left; width: 30%;padding-left: 6%; padding-right: 2%;"> <a href="#" id="aAccept" onclick="Supprimer();" data-theme="a" class="LnkButton" data-role="button" data-inline="true" data-mini="true">Delete</a>
</div>
<div style="float: right; width: 30%;"> <a href="#" id="aReply" onclick="Reply();" data-theme="a" class="LnkButton" data-role="button" data-inline="true" data-mini="true">Reply</a>
</div>
</div>
</div>
</div>
</div>
JS код
window.opts = {
lng: 'fr',
getAsync: true,
// fallbackLng: 'en',
ns: {
namespaces: ['ns.controls'],
defaultNs: 'ns.controls'
},
useLocalStorage: false,
debug: true
};
$.i18n.init(opts).done(function () {
alert('i18n init function');
$('#aNo').text("No Merci!");
$('#aAccept').text("Supprimer");
$('#aReply').text("Respondre");
$('#messageboxPage').trigger('pagecreate');
});
$(document).ready(function () {
alert('messagebox document ready');
});
Теперь проблема в том, что текст изменен, но стиль кнопки потерян. Вторая проблема - установка текста с метками. Я пробовал триггер создания страницы, но он не работает, что вы предлагаете. здесь работает jsfiddle
2 ответа
Решение
Чтобы изменить текст кнопки, вы должны изменить текст .ui-btn-text
элемент, намного лучше, чем span > span
вещь:
$('#aNo .ui-btn-text').text("No Merci!");
$('#aAccept .ui-btn-text').text("Supprimer");
$('#aReply .ui-btn-text').text("Respondre");
скрипка
Это сработало для меня
$.i18n.init(opts).done(function () {
alert('i18n init function');
var message_type = 0;
if (message_type == "0") {
alert('from 0');
$('#lblTo').text("from 0");
} else if (message_type == "1") {
alert('to 1');
$('#lblTo').text("to 1");
} else if (message_type == "2") {
alert('from 2');
$('#lblTo').text("from 2");
}
$('lblDate').text($.t('Messagebox.lblDate'));
$('lblSubject').text($.t('Messagebox.lblSubject'));
//////////////////////////this is where i was wrong
$('#aNo > span > span').text("No Merci!");
$('#aAccept > span > span').text("Supprimer");
$('#aReply > span > span').text("Respondre");
///////////////////////////
$('#messageboxPage').trigger('pagecreate');
});