|
板凳
楼主 |
发表于 2013-8-29 11:32:06
|
只看该作者
又想用ajax,又想先弹第1个alert,再弹第2个alert,有2种方法:
方法1:
将ajax后面的js语句提到ajax的回调函数中执行,代码如下:- <a href = "10481.html" title = "即将上线" class = "popup_links">即将上线</a>
- <div class="conWindow">
- <!-- ajax请求内容预留位置 -->
- </div>
- <script type="text/javascript">
- $(function() {
- var artCont,
- $('.popup_links').each(function(index, val) {
- $(this).click(function() {
- artCont = $(this).attr("href");
- $(".conWindow").load(artCont, function(responseText, textStatus, xmlHttpRequest) {
- alert("第1个alert,这是ajax异步请求!");
- <b>alert("第2个alert!");</b>
- })
- return false;
- }).click();
- })
- });
- </script>
- </body>
复制代码 如上代码加粗部分所示!如果使用$.ajax()方法,可使用下列形式使用success回调函数- $.ajax({
- success:function(){
- alert("第2个alert!");
- }
- })
复制代码 方法2:
弃用$.load(),改用$.ajax(),方便将ajax请求设置成同步请求,具体代码如下:- <a href = "10481.html" title = "即将上线" class = "popup_links">即将上线</a>
- <div class="conWindow">
- <!-- ajax请求内容预留位置 -->
- </div>
- <script type="text/javascript">
- $(function() {
- var artCont;
- $('.popup_links').each(function(index, val) {
- $(this).click(function() {
- artCont = $(this).attr("href");
- $.ajax({
- url:artCont,
- <b> async:false</b>,/*默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,<b>同步请求将锁住浏览器,直至执行完ajax回调函数才会再去执行ajax后面的js语句</b>*/
- success: function(XHRtxt,TS){//回调函数
- $(".conWindow").html("ajax已改成同步请求,请求状态:"+TS+"<br/>请求内容:"+XHRtxt);
- alert("第1个alert,这是ajax异步请求!");
- }
- });
- alert("第2个alert!");
- return false;
- }).click();
- })
- });
- </script>
复制代码 解决问题的关键,得知道同步请求、异步请求两者间的区别!
|
|