Индикатор выполнения jQuery UI не работал в цикле в IE 11 и Chrome
Я использую jQuery 1.7.2, а jQuery-ui - 1.10.4. Мой код отлично работает в FireFox. Мой код для JQuery, как показано ниже.
$(document).ready(function () {
$("#progressbar").show();
$("#progressbar").progressbar({
value: false
});
progress(10, "Initialize");
/* If Season Year is zero than throw error */
if (seasonYearCount == 0) {
progress(0, Res.errGeneratingSchedule);
return;
}
if (seasonYearMonthCount == 0) {
$("#lbErrorMsg").text(Res.errGeneratingSchedule);
progress(0, Res.errGeneratingSchedule);
alert(Res.setupSeasonYearMonth);
return;
}
if (productYearCount == 0) {
progress(15, "Adding Products");
}
$.each(productArray, function (index, product) {
progress(17, "Adding Complaints");
});
_days = daysInMonth($("#dpMonth").val(), $("#dpYear").val());
for (var pWC = 0; pWC < _productWithComplaint.length; pWC++) {
progress(pWC + 17, "Making Plan");
//console.dir(_plan);
progress(100, "Complete");
$("#progressbar").hide();
});
function progress(value, text) {
$("#progressbar").progressbar("value", value);
var currValue = $("#progressbar").progressbar("value");
$("#lbMessage").text(text + " - " + currValue + "%");
}
Это мой HTML код
<div id="progressbar" style="display:none;">
<div id='lbMessage'>Loading...</div>
</div>
может кто-нибудь помочь в этом...
скрипка для исходного кода http://jsfiddle.net/milindsaraswala/2CFxZ/
1 ответ
Я подозреваю, что это синтаксическая ошибка. Вы не закрыли скобку для цикла for:
for (var pWC = 0; pWC < _productWithComplaint.length; pWC++) {
progress(pWC + 17, "Making Plan");
} // <== MISSING THIS
//console.dir(_plan);
progress(100, "Complete");
$("#progressbar").hide();
});
Всегда проверяйте консоль на наличие ошибок JS.
РЕДАКТИРОВАТЬ
Код в вашей скрипке работает нормально. Он работает так быстро, что вы не видите прогресс от 0 до 100. Вы вообще не видите индикатор выполнения, потому что скрываете его сразу после завершения остальной части кода, что занимает всего несколько миллисекунд.