<script type="text/javascript>
    function ShowProgress1() {
                var timerid;
                timerid=setTimeout(function () {
                    var modal = $('<div />');
                    modal.addClass("modal1");
                    $('body').append(modal);
                    var loading = $(".loading1");
                    loading.show();
                    var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
                    var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
                    loading.css({ top: top, left: left });
                    test();
                }, 0);
            }
            //hide
            function test() {
                if (timerid != null) {
                    clearTimeout(timerid);
                }
            }
            $('[id*=chk_ColorCL]').live("click", function () {
                ShowProgress1();
            });
    </script>
    <asp:CheckBoxList ID="chk_ColorCL" RepeatDirection="Horizontal" RepeatLayout="Table"
                                                                                                                                RepeatColumns="25" runat="server" Font-Bold="true" OnSelectedIndexChanged="fun_chkColor" AutoPostBack="true">                                                                                                                       </asp:CheckBoxList>

    private void funchk()
    {
     ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "test()", true);
    }


这里


  我想在执行警报后显示图像,图像将是
  消失了


但没有用。我在上面提到了我的代码示例。

最佳答案

您在timerId方法中引用的test变量与在ShowProgress1中引用的变量不同。这是为什么:在var timerid内声明ShowProgress1时,您将该变量设置为函数范围的局部变量,因此在该变量范围之外不可用。

timerId变量的声明移出ShowProgress1方法,以便两个方法都引用相同的变量。

var timerid;

function ShowProgress1() {
    timerid=setTimeout(function () {
      var modal = $('<div />');
      modal.addClass("modal1");
      $('body').append(modal);
      var loading = $(".loading1");
      loading.show();
      var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
      var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
      loading.css({ top: top, left: left });
      test();
  }, 0);
}
    //hide
function test() {
    if (timerid != null) {
        clearTimeout(timerid);
    }
}
$('[id*=chk_ColorCL]').live("click", function () {
    ShowProgress1();
});

关于javascript - clearTimeout无法使用jQuery吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51551103/

10-12 06:38