Здравствуйте не могу вернуть значение из функции прототипа в функцию конструктор. Не судите строго это первая попытка написания плагина. Вроде как callback надо применять, но если честно до сих пор не понял как функционирует этот механизм.
function GeoSelector(element, options) {
var widget = this;
widget.config = $.extend({}, defaults, options);
widget.element = element;
widget.init();
widget.inputContainer.on('keyup', function (e) {
var str = widget.inputContainer.val();
//здесь надо указать условие по количеству символов ввода.
// установить таймаут для запросов
// ВОТ ЗДЕСЬ НАДО ПОЛУЧИТЬ ЗНАЧЕНИЕ ИЗ ФУНКЦИИ
var regions = widget.getRegion();
console.log(regions);
});
}
;
GeoSelector.prototype = {
init: function () {
// console.log('privet');
this.element.addClass('gs-container');
console.log(this.element);
var selectContainer = $('<div/>').addClass('gs-select-container').appendTo(this.element);
this.inputContainer = $('<input/>').addClass('gs-input-container').appendTo(selectContainer);
this.regionContainer = $('<div/>').addClass('gs-region-container').appendTo(selectContainer);
this.cityContainer = $('<div>').addClass('gs-city-container').appendTo(this.element);
},
getRegion: function (callback) {
$.ajax({
type: 'GET',
url: './js/region.json',
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}).done(function (data) {
// А ЗДЕСЬ ПЕРЕДАТЬ ЕГО
callback(data);
});
},
searchItem: function (mask, array) {
var result = false;
var x, y, result = [];
mask = mask.toUpperCase();
if (mask !== '') {
for (x = 0, y = array.length; x < y; x++) {
var string = array[x][1].toUpperCase();
if (string.search(mask) !== -1) {
result.push(array[x]);
} else {
continue;
}
}
}
result.length < 1 ? result = false : result;
return result;
}
};