IE 9中未显示ajax加载图标

For some reason, the loading/spinner icon won't show up in IE but works just fine in Firefox. Do you see anything wrong in my code?

My jQuery -

  var loader = $('#loading');

        loader.hide()
            .ajaxStart(function () {
                loader.show();
            })
            .ajaxStop(function () {
                loader.hide();
            });

My HTML looks something like this -

 <div id="te">
        ......
        <div id="container">
            ......
            <div id="body-container">
                ......
                <div id="loading">
                    <img alt="Loading, please wait.." src="/images/spinner.gif" />
                </div>
            </div>
        </div>
    </div>

Here's my CSS -

#te #loading img { background: url('/images/spinner.gif') no-repeat; }
#te #loading  { background-color: #F9F9F9; border: 1px solid #aaa; border-radius: 5px; left: 45%;top: 45%; padding: 20px 50px; position: fixed; }

Update #1: Have tried removing #te #loading img altogether from the css and modified #te #loading to this but it didn't work -

#te #loading  { background-repeat: no-repeat; background-color: #F9F9F9; border: 1px solid #aaa; border-radius: 5px; left: 45%;top: 45%; padding: 20px 50px; position: fixed; z-index: 1000; }

Update #2: Here's my js code -

<script type="text/javascript">
    $(function () {
        var cpdata;
        setupEvents();
        loadInitialData();

        function setupEvents() {
            var loader = $('#loading');
            loader.hide()
            .ajaxStart(function () {
                loader.show();
            })
            .ajaxStop(function () {
                loader.hide();
            });
            // some other stuff..
        }
        function loadInitialData() {
            cpdata = callMethod(urlLoadInitialData, {}, false);
            if (cpdata != null) {
                // do something with cpdata
            }
        }
        function callMethod(url, parameters, async) {
            var data;
            $.ajax({
                type: 'POST',
                url: url,
                data: JSON.stringify(parameters),
                async: async,
                contentType: 'application/json;',
                dataType: 'json',
                success: function (result) {
                    data = result.d;
                }
            });
            return data;
        }
    });</script>

#0

Try changing the code slightly:

var loader = $('#loading');
loader.hide();
$.ajaxStart(function() {
    loader.show();
});
$.ajaxStop(function() {
    loader.hide();
});

Alternate:

jQuery(document).ready(function(){
    jQuery('#loading').hide();
    jQuery.ajaxStart(function() {
        jQuery('#loading').show();
    });
    jQuery.ajaxStop(function() {
        jQuery('#loading').hide();
    });
});

Another alternate: use complete:

jQuery(document).ready(function(){
    jQuery('#loading').hide();
    jQuery.ajaxStart(function() {
        jQuery('#loading').show();
    });
    jQuery.ajaxComplete(function() {
        jQuery('#loading').hide();
    });
});

be sure to include:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

for the border radius in the css

One more attempt - likely no change but...

$(function() {
    var cpdata;
    var loader = $('#loading');
    loader.hide().ajaxStart(function() {
        $(this).show();
    }).ajaxStop(function() {
        $(this).hide();
    });
    setupEvents();
    loadInitialData();

    function setupEvents() {
        // some other stuff..  
    }

    function loadInitialData() {
        cpdata = callMethod(urlLoadInitialData, {}, false);
        if (cpdata != null) { // do something with cpdata     
        }
    }

    function callMethod(url, parameters, async) {
        var returnData;
        var pString = JSON.stringify(parameters);
        $.ajax({
            type: 'POST',
            url: url,
            data: pString,
            async: async,
            contentType: 'application/json',
            dataType: 'json',
            converters: {
                "json jsond": function(msg) {
                    return msg.hasOwnProperty('d') ? msg.d : msg;
                }
            },
            success: function(result) {
                returnData = result;
            },
            error: function(xhr, textStatus, errorThrown) {
                var errorMessage = "Ajax error: " + this.url + " : " + textStatus + " : " + errorThrown + " : " + xhr.statusText + " : " + xhr.status;

                if (xhr.status != "0" || errorThrown != "abort") {
                    alert(errorMessage);
                }
                if (errorThrown == "abort") {
                    alert("Aborted Ajax");
                }
            }
        });
        return returnData;
    }
});

推荐文章

Gwt和php-rpc

Gwt和php-rpc

推荐文章

SQL Server自连接

SQL Server自连接

推荐文章

相当于“/dev/stdin”的窗口?

相当于“/dev/stdin”的窗口?

推荐文章

声明接受构造函数参数的成员变量

声明接受构造函数参数的成员变量

推荐文章

检查std::vector index是否超出界限的最快方法是什么?

检查std::vector index是否超出界限的最快方法是什么?

推荐文章

Qt错误“持久模型索引损坏”为什么?

Qt错误“持久模型索引损坏”为什么?

推荐文章

检查JSP EL是否存在Cookie

检查JSP EL是否存在Cookie

推荐文章

错误:声明说明符[1]-IBAction后应为成员名或“;”

错误:声明说明符[1]-IBAction后应为成员名或“;”

推荐文章

另一个“保留引用”XmlSerializer问题

另一个“保留引用”XmlSerializer问题

推荐文章

敏捷scrum开发工具?

敏捷scrum开发工具?

推荐文章

使用cliente.DownloadString客户下载字符串(url);给出奇怪的正方形符号c#.net 3.5

使用cliente.DownloadString客户下载字符串(url);给出奇怪的正方形符号c#.net 3.5

推荐文章

如何在使用滑动删除时在uitableviewcell中滑动UILabel

如何在使用滑动删除时在uitableviewcell中滑动UILabel

推荐文章

DOJO实例化和使用源代码的区别

DOJO实例化和使用源代码的区别

推荐文章

如何使值依赖于excel上的下拉列表/菜单?

如何使值依赖于excel上的下拉列表/菜单?

推荐文章

ruby中的模操作数与php的比较

ruby中的模操作数与php的比较

推荐文章

WCF和SSL的问题

WCF和SSL的问题