Сообщение от bes
|
и зачем туда обращать внимание?
|
чтобы легче было разобраться, в том что я спрашивать буду ниже.
я вышел из положения объявив переменные глобально к которым присваиваю результат внутри функций. Это помогло.
оказалось return вообще не нужен.
в данном вопросе. Как оно обычно и бывает. пока писал пост уже решил проблему)))
Но спасибо за внимание.
вот как выглядит код теперь. если интересно:
var arrObj;
function autocomleteRemovedArrWatcher(id, type, url, data, arr) {
var varForID;
function f( type, url, data, arr) {
$.ajax({
type: type,
url: url,
data: sendFormAb($(data).val()),
async: false,
success: function (jsonVars) {
//jsonVars[arr] instanceof Object?alert(sendFormAb(jsonVars[arr])):{}
if (jQuery.type(jsonVars[arr]) !== 'object') {
varForID = jsonVars[arr]
} else {
//alert([jsonVars[arr]].join('\n'))
var keys = new Array();
for (var key in jsonVars[arr]) {
keys.push(key);
}
varForID = keys;
arrObj = jsonVars[arr];
}
},
complete: function() {
$('#'+id).trigger('dropDownLoaded');
}
});
}
function f0() {
$('#'+id).focus();
}
function f1(id){
if($('.autoCompleteInput_'+id).length==0) {
$('<div class="autoCompleteInput autoCompleteInput_'+id+'" style="width:'+(($('#'+id).width())*1+20*1)*1+'px;">').insertBefore('#'+id);
$('#'+id).appendTo('.autoCompleteInput_'+id);
$('#'+id).after('<div class="dropDownList dropDownList_'+id+'" style="width:'+$('#'+id).css('width')+';"></div>');
}else {
$('.dropDownList_'+id).show();
}
}
function f2(arr, id) {
$('.dropDown_'+id).remove();
for (var i in arr) {
if ((arr[i].indexOf($('#'+id).val())!==-1)&&(arr[i]!=='')) {
$('.dropDownList_'+id).append('<div class="dropDown dropDown_'+id+'">'+arr[i]+'</div>');
}
}
}
function f3(id) {
$('.dropDown_'+id).on('mousedown', function(){
$('#'+id).val( $(this).html()).trigger('changed');
$('#'+id).trigger('inputDropDownClick');
});
$('#'+id).on('blur', function(){
$('.dropDownList_'+id).hide();
});
}
function f4(id) {
$('#'+id).on('inputDropDownClick', function(){
$('.dropDownList_'+id).hide();
});
}
function f5() {
$('#'+id).trigger('changed');
}
$('#'+id).on({
click: function() {
f(type, url, data, arr);
},
dropDownLoaded: function() {
f1(id);
f2(varForID, id);
f3(id);
f4(id);
f0();
},
keyup: function() {
f1(id);
f2(varForID, id);
f3(id);
f4(id);
f5();
}
});
}
вызов функции:
autocomleteRemovedArrWatcher('service_2', 'GET', '/getFifthParams', '#serviceType_2', 'service');
$('#service_1').on('blur', function () {
alert(arrObj[$('#service_1').val()]);
});