如何解决问题“'$ .blockUI.defaults'为空或不是对象”

时间:2012-02-15 13:52:37

标签: jquery jquery-ui jquery-blockui

包括jquery-1.3.2.min.js和blockUI-2.15.0.js

<script type="text/javascript">

    $(document).ready(function() {
        $(".noButton").click(function(e) {
            e.preventDefault();

            $.blockUI({ message: $('#AreYouSureMessage') });

        });

        $('.noButtonPopup').click(function() {

            doNoPostBack();

            return true;
        });

        $('.yesButtonPopup').click(function() {

            doYesPostBack();

            return true;
        });

$ .blockUI.defaults.overlayCSS.opacity = 0.7;

$。blockUI.defaults.css.width =&#39; 500px&#39;;

$ .blockUI.defaults.css.border =&#39; 1px solid#000000&#39;;

$ .blockUI.defaults.css.height =&#39; 700px&#39;;

$。blockUI.defaults.fadeOut = 0;

注意:我在IE中收到如下错误

&#39; $ blockUI.defaults&#39;是null或不是对象

2 个答案:

答案 0 :(得分:2)

我们在其中一个内容页面(Web窗体)中遇到了同样的问题。与同一母版页相关联的其他内容页面运行良好。

实际上我们在主页面中包含了jQuery.js文件引用,但对jQuery.js的相同引用再次包含在内容页面中。这导致错误消息&#34; $ .blockUI.defaults&#39;是null或不是对象&#34;。

这也意味着,即使您在任何.aspx页面中错误地引用了jQuery.js文件,您也可能会遇到类似的错误消息。

希望这可能会有所帮助。

答案 1 :(得分:0)

我对此问题的解决方案是将所有jquery引用文件放在同一个文件夹中。     并检查所有jquery文件的路径是否正确(../ Script / jquery.BlockUI.js)。

notice on ../


Also check for the same reference to jQuery.js was included in the content page once again.

Ref Link for 
http://amitchandnz.wordpress.com/2010/08/24/jquery-blockui-using-animated-image/

To add BlockUI for Masterpage so that the entire site can perform loading panel when postback

######################################################################################
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="../Scripts/jquery/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="../Scripts/jquery/jquery-ui.js"></script>
    <link rel="stylesheet" type="text/css" href="Scripts/jquery/jquery-ui.css" />
    <script src="../Scripts/jquery/jquery.blockUI.js" type="text/javascript"></script>

     <script type="text/javascript">
 function BlockUI(elementID) {
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(function () {
                $("#" + elementID).block({ message: '<table><tr><td>' + '<img src="../Scripts/jquery/ajax-loader.gif"/></td></tr></table>',
                    css: {},
                    overlayCSS: { backgroundColor: '#FFFFFF', opacity: 0.6, border: '1px solid #000000' }
                });
            });
            prm.add_endRequest(function () {
                $("#" + elementID).unblock();
            });
        }
        $(document).ready(function () {
            BlockUI("divMain");
            $.blockUI.defaults.css = {};
        });



    </script>

    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
    <asp:UpdatePanel ID="ajaxUpdatePanel" runat="server">
                        <ContentTemplate>
                            <div id="divMain">
                                <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
                            </div>
                        </ContentTemplate>
                    </asp:UpdatePanel>

    </form>
</body>
</html>

######################################################################################







**Download link for jquery.BlockUI.js** 

http://jquery.malsup.com/block/#download

**Download link for jquery core**

http://jquery.com/download/

**URL for alternatre loading Icon** 

http://www.ajaxload.info/


Hope this may help.