<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/