У меня есть оверлей div «processing ...», который я показываю с помощью $ (''). Show() перед тем, как делать ajax-вызовы и скрыться при завершении. Проблема, с которой я сталкиваюсь, заключается в том, что если я хочу показать div, а затем сделать несколько вызовов ajax до сокрытия div снова, кажется, очередь в событиях в Internet Explorer (7) и Chrome (2.0.172.39), но я получить ожидаемый результат в Firefox (3.0.13). Когда есть один вызов ajax, он работает нормально. Код выглядит примерно так:JQuery show() задерживается в Internet Explorer/Chrome
<div id="foo">processing...</div>
<button onclick="performSingle()" /> <-- This behaves like it's supposed to
<button onclick="performMultiple()" /> <-- This queues the events in IE/Chrome.
<script>
$(document).ready(function(){
$('#foo').hide();
});
function singleAjaxCall() {
$.ajax({
url: ...,
type: "GET",
async: false, //There is a reason for this.
success: function() {}
});
}
function multipleAjaxCalls() {
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
}
function performSingle(){
$('#foo').show();
singleAjaxCall();
$('#foo').hide();
}
function performMultiple(){
$('#foo').show();
multipleAjaxCalls();
$('#foo').hide();
}
</script>
Пропущенная 'функция' игнорируется, если вы передали' 0', как вы это сделали. –
Теперь. благодаря –