搜索提交完成事件以关闭装载程序

时间:2012-07-04 13:10:37

标签: c# javascript jquery asp.net webforms

我正在尝试在我的asp.net webforms应用程序上使用loader。 我的javascript加载器:

        function loading() {
            $("#loading").show();
        }

        function loaded() {
            $("#loading").hide();
        }

html loader

    <div id="loading">
         <span id="MessageLoader">Loading...</span>
         <img id="imgLoading" src="../Skin/images/blue-ajax-loader.gif" />
    </div> 

这不是问题,每次我尝试都可以正常工作,我的问题是如何为每个请求使用这个加载器? 我尝试通过两种方式使用它: 首先将加载器调用放在每个链接中,并在我加载每个页面主体onload事件时取消它,它工作正常,但当我点击链接打开新选项卡,新窗口或下载一些文件时我的加载器永远不会完成,请参阅下面的代码:

        $('a').click(function () {
              if ($(this).attr('href') != '#'){
                 loading();
              }
        }

其次我使用了一个我的页面所拥有的资源:我的系统上的每个页面都有代码隐藏中的另一个页面,所以在父页面加载中我把这个代码放在下面:

        ScriptManager.RegisterOnSubmitStatement(this, this.GetType(), "myscript", "loading();");

它比上一个更好,它仍然与页面主体onload事件关闭加载器,但仍有一个问题,当我提交尝试下载文件时,它不在页面上回发,所以它'不'把我的装载机放下 那么,我该怎么做呢?我搜索了提交完整事件但没有成功的事情。我的ideia是将提交完成事件放在父页面上,但我需要知道该事件。如果你想给我另一个想法,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

在打开新标签/窗口时,您当前的页面将成为新标签/窗口中的页面。您在上一页上与装载机有什么关系?其次,你的主文档现在可以加载新页面了吗?

注意:click事件会立即触发,持续时间为0,因此没有任何回调。

但是如果你需要加载一段时间的gif并在一段时间后隐藏你的setTimeout函数。

click for jsfiddle example

$('a').click(function () {
              if ($(this).attr('href') != '#'){
                  loading();
                  setTimeout(loaded, 3000); //3 secs
              }

});