В цыкле постоянно меняется переменная которая используется в функции. Перед каждым вызовом функции эта переменная меняется. Дело в том что количество вызовов функции столько сколько переменная менялась . А вот в функции переменная которая менялась 7 раз используется последнее 7 значение этой переменной. Буд то функция запускается только после того как пройдет основной цыкл и потом функция по количеству ее вызовов в этом цыкле начинает выполнение но с уже только последней 7 переменной. Как запускать функцию только после одной смены значения переменной?
(function($){
function ajaxStart(){
$('#progress').show();
}
function ajaxStop(){
$('#progress').hide();
}
function parserGo(){
ajaxStart();
//alert('Started');
var site=$('input#inputSite').val();
var b = $.ajax('https://www.google.ru/search?q= '+Mask+' '+site);
b.done(function (d) {
analysisSite(d);
ajaxStop();
});
b.fail(function (e, g, f) {
alert('Страница недоступна');
ajaxStop();
})
}
var Mask="";
$(function(){
Mask='testname';
if (Mask.indexOf(('nbsp;'))==-1){
setTimeout(parserGo(),10000);
}
});
})(jQuery);
это вырванное из контекста, но мне кажется увидеть проблему можно переменная Mask берется как глобальная и используется внутри функции analysisSite(), а меняется перед вызовом родительской функции parserGo(). Так вот если представить все возможные значения которые принимает маска(Mask) то в массиве это выглядело бы так Mask[0]='слово1',Mask[1]='слово2'.... и.т.д А у меня после первого вызова parserGo() используется Mask[6]='слово7'. И вызывается эта функиция 7 раз с обной и той же маской.
ajaxStart()иajaxStop()функции должны сработать после окончанияajaxзапроса? – Raz Galstyan Jun 02 '17 at 11:09setTimeout(parserGo(),10000);– Grundy Jun 02 '17 at 14:08setTimeout(parserGo(),10000);иparserGo()нет. – Grundy Jun 05 '17 at 06:18new? – Grundy Jun 05 '17 at 06:26