我有这个ajax功能:
function callpage() { $('#formcontent').empty().html('<p class="vent">Pleace wait</p>'); var form = $('form#sog'); $.ajax({ type: form.attr('method'),url: form.attr('action'),data: form.serialize(),success: function(msg) { $('#formcontent').css("border","none").html(msg); } }); }
当它被调用时我想要遮蔽其他东西,那么应该禁用formcontent div和所有其他jquery函数,直到ajax调用成功为止.
更新:
调用callpage时应该禁用的切换功能,直到成功为止:
$('#search').hover( function () { $('#search').animate({width: '400px'},500,function() {}); },function () { $('#search').animate({width: '200px'},500); callpage(); } );
解决方法
当AJAX调用以
AJAXStart开始时,您可以调用覆盖,然后使用
ajaxComplete隐藏它
$(document).ajaxStart(function(){ $("#overlay").show(); }); $(document).ajaxComplete(function(){ $("#overlay").hide(); });
或者您可以将所有内容都放入通话中:
$.ajax({ type: form.attr('method'),beforeSend: function(){$("#overlay").show();},complete: function(){$("#overlay").hide();},success:function(msg){$('#formcontent').css("border","none").html(msg);} });
编辑我从另一个答案采取叠加
#modal-overlay { position: fixed; z-index: 10; background: black; display: block; opacity: .75; filter: alpha(opacity=75); width: 100%; height: 100%; }
$('#search').hover( function () { var overlaydisplayed = $("#overlay").is(":visible"); if(!overlaydisplayed){ $('#search').animate({width: '400px'},function() { }); } },function () { var overlaydisplayed = $("#overlay").is(":visible"); if(!overlaydisplayed){ $('#search').animate({width: '200px'},500); callpage(); } } );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。