У меня есть ячейки с различными валидаторами на них. Когда одна ячейка проверяется, мне нужно повторно проверить другие ячейки ее группы. Validation пожары на «размытых» событиях, так что я должен вызвать «размывания» событие на все клетки в группе:Как подождать все обратные вызовы в каждом цикле
element.attr('validated', true);
var validityGroup = getValidityGroupElements();
validityGroup.each(function() {
$(this).blur();
});
element.attr('validated', false);
Здесь element
является текущей ячейкой и функция getValidityGroupElements()
дает мне массив элементов текущей группы ти validated="false"
атрибута , Я устанавливаю этот атрибут, чтобы избежать бесконечного цикла, когда каждая ячейка будет проверять все ячейки в своей группе и так далее. Но проблема заключается в следующем: как подождать все обратные вызовы, которые выполняются в цикле .each
, и только после этого установить проверенный атрибут текущего элемента на false
?
Вы можете просто вызвать 'validityGroup.blur()', не нужно для цикла, а 'validated' не является допустимым атрибутом, используйте' data-validated' или '.validated' css class –
Вам не нужно ждать, пока каждый из них будет выполнен - повторяется здесь http://stackoverflow.com/a/7371983/1270199 – Aman
@Aman 'each' является синхронным, но' element.attr ('validated', false) 'выполняет перед' blur' callbacks firees, thats the problem :( – mopdobopot