`

jQuery blockUI插件在ajax提交的时候的用法(block不起作用)

阅读更多

在开发过程中出现一个问题,就是在IE7,8,9 ,Chrome中block不起作用。

 

原来的代码:

jQuery.blockUI({ message: blockmsg, css: { padding: 25, color: '#fff', border: '3px solid #aaa', backgroundColor: '#507691'} });

        
            $.ajax({
                type: "post",
                url: "/PersonalizerPreViewHandler.ashx",
                //dataType: "json",
                async: false,//写这句话的目的是,当ajax调用成功后,再调用btn的后台方法。
                data: { 'values': inputvaluesJS },
                success: function (data) {
                    //var leftA = divid.replace("div", "divimg");
                    //$("#" + leftA + " img").attr("src", data);
                    if (obj != "order" || data.indexOf("error_") > -1) {
                        jQuery.unblockUI();
                    }

                    if (data.indexOf("error_") > -1) {
                        alert(data.substring(5, data.length - 1));

                    } else {
                        PreviewImage(data,obj);
                    }
                },
                error: function (err) {
                    jQuery.unblockUI();
                    alert("error:" + err);
                    return false;
                }
            });

 这样写后就出现了我之前的问题,block不起作用了。

查了很久,看了源码发现在blockui的js中有这样的语句,

setTimeout(function(){focus(back)},10);


setTimeout(function() { reset(els,data,opts,el); }, opts.fadeOut);

 

我想是不是因为这个原因再加上ajax的同步问题,队列顺序改变造成的。

于是,我修改了正确的代码如下

jQuery.blockUI({ message: blockmsg, css: { padding: 25, color: '#fff', border: '3px solid #aaa', backgroundColor: '#507691'} });

        setTimeout(function () {
            $.ajax({
                type: "post",
                url: "/PersonalizerPreViewHandler.ashx",
                //dataType: "json",
                async: false,
                data: { 'values': inputvaluesJS },
                success: function (data) {
                    //var leftA = divid.replace("div", "divimg");
                    //$("#" + leftA + " img").attr("src", data);
                    if (obj != "order" || data.indexOf("error_") > -1) {
                        jQuery.unblockUI();
                    }

                    if (data.indexOf("error_") > -1) {
                        alert(data.substring(5, data.length - 1));

                    } else {
                        PreviewImage(data,obj);
                    }
                },
                error: function (err) {
                    jQuery.unblockUI();
                    alert("error:" + err);
                    return false;
                }
            });
        },100);

 注意:

1.我使用的jquery是1.6.1min

2.Jquery.block是2.08

3.我从网上查过使用ajax  --beforesend还是不行,我想应该是还是没有改变settimeout的轨迹吧,代码如下:

 

    $.ajax({   
                                 type: "POST",   
                                  url: "GetFreeStand.do",   
                                  data:   "hid="+$("#hall").val()+"&pid="+$("#plan").val(),   
                                  dataType:'json',   
                                  async: false,   
                                  beforeSend:function(){   
                                     $.blockUI({message:'获取大厅大厅的空闲摊位,请稍候...'});   
                                 },   
                                 complete: function() {   
                                     $.unblockUI();   
                                 } ,   
                                  success: function(data){      
                                     $("#stand").empty();   
                                    for(var i=0;i<data.rows.length;i++){   
                                        var row = data.rows[i];                        
                                         $("#stand")[0].options.add(new Option(row.name,row.id));   
                                     }   
                                  }   
                             });  

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    jQuery-blockUI.js

    The jQuery BlockUI 插件是用于进行AJAX 操作时模拟同步传输时锁定浏览器操作[1] 。当它被激活时,它会阻止使用者与页面(或页面的一部分)进行交互,直至它被取消。 BlockUI以在DOM 中添加元素的方法来实现阻止用户...

    jquery.blockui遮罩插件

    jQuery BlockUI 插件可以在不同锁定浏览器的同时,模拟同步模式下发起Ajax请求的行为。该插件激活时,会组织用户在页面进行的操作,直到插件被关闭。

    jQuery BlockUI 插件(遮罩层)

    jQuery BlockUI 插件(遮罩层)源代码 博文地址:http://blog.csdn.net/evangel_z/article/details/51123612

    jquery.blockui.js

    BlockUI 插件是用于进行AJAX操作时模拟同步传输时锁定浏览器操作。当它被激活时,它会阻止使用者与页面(或页面的一部分)进行交互,直至它被取消。 BlockUI以在DOM中添加元素的方法来实现阻止用户与浏览器交互的...

    jquery blockUI 用法

    jquery.blockUI插件用法实例,欢迎下载。

    jQueryPager(JQuery分页插件pagination实现Ajax分页)

    jQueryPager(JQuery分页插件pagination实现Ajax分页) CSDN犀利助互群60168829

    Ajax表单提交插件jquery form

    Ajax表单提交插件jquery form

    JQUERY插件--ajax搜索

    JQUERY插件,ajax不需要刷新,即可实现搜索功能

    jquery.blockUI

    jQuery BlockUI插件可以在不锁定浏览器的同时,模拟同步模式下发起Ajax请求的行为。该插件激活时,会阻止用户在页面进行的操作,直到插件被关闭。 压缩包内有两个版本。2.4.2和2.7.0

    jquery ajax分页插件

    jquery ajax分页插件 jquery ajax分页插件 jquery ajax分页插件

    jquery blockUI Version 2.39

    jQuery blockUI plugin Version 2.39 (23-MAY-2011) Demos: $(document).ready(function() { $('#demo1').click(function() { $.blockUI({ message: $('#loginForm') }); setTimeout($.unblockUI, 2000); ...

    jquery.blockUI.js

    Jquery全屏遮掩及加载条插件,使用: &lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"&gt; &lt;script type="text/javascript" src="js/jquery.poshytip.js"&gt; &lt;script type="text/javascript" src="js/...

    jquery blockUI 2.7.0

    最新版本的jquery blockUI 2.7.0,官方完整版,测试通过,想要自定义设置一些东西可以直接百度或者查看官网demo

    jquery blockui

    在做网站的开发过程中,可能需要使用弹出层,使用jquery的blockui插件可以很轻松的实现这个效果。blockui可以在你发送ajax请求的时候,显示一个遮罩层禁止用户对页面进行操作并显示提示信息;或者用来显示一个登陆...

    可预览删除的jQuery多图上传ajax提交.zip

    好看好用的上传js插件,可预览可删除,支持多图上传ajax,

    jquery-blockUI-2.70.js

    官方最新版的 jquery-blockUI,本人没有对其进行任何的修改,完全是从官网上下载了。

    jquery form ajax 插件

    jquery form ajax 插件

Global site tag (gtag.js) - Google Analytics