Есть функция которая через ajax достает текст из json и вставляет его в какой то обьект
$.fn.setLanguage = function(options){
options = $.extend({
language: 'ru',
text: this.attr('data-text')
}, options);
var make = function(){
var el = $(this);
$.ajax({
url : options.language +'.json',
dataType: 'json',
success:function(data) {
el.html(data[options.text]);
}
});
};
return this.each(make);
};
Сама вставка:
var btn = $('<button type="button"></button>');
btn.setLanguage({text:'login_error'});
$('body').append(btn);
Но так неудобно, так как в той же кнопке могут быть еще какие то элементи и неизвестно куда вставлять текст.
Решил делать как то так:
$.getText = function(){
var result;
$.ajax({
url : 'text.json',
async: false,
dataType: 'json',
success:function(data) {
result = data;
}
});
return result
};
var btn = $('<button type="button">'+ $.getTextFromJson('login_error') +'</button>');
Но тут все делается через синхронный запрос что не очень хорошо.
Может кто то делал подобное, поделитесь решением.