我遇到了一个弹出处理图形的问题,该图形位于DIV元素内部,我无法消失。如果需要,图形会正确显示,但是当我尝试将其显示为无时,它仍然存在。
我正在使用如下所示的微调器功能: http://www.codeproject.com/Tips/701197/A-master-page-level-spinner-animation
所以,我的母版页中有div元素:
<!--Content start-->
<div id="content">
<asp:ContentPlaceHolder ID="MainContent2" runat="server">
</asp:ContentPlaceHolder>
<div class="clr"></div>
<div id="SpinnerContainer"></div>
<div id="Spinner" style="background:url(/images/loader.gif) no-repeat center #fff;"></div>
</div>
<!--Content end-->
我的母版页中有一些java脚本可以显示如下:
function ToggleSpinnerBlock(Visible) {
var displayValue = Visible ? "block" : "none";
document.getElementById("SpinnerContainer").style.display = displayValue;
document.getElementById("Spinner").style.display = displayValue;
var isIE = navigator.userAgent.indexOf('MSIE') > 0;
if (Visible && isIE) {
$('#Spinner').css("backgroundImage", "");
setTimeout("AppendSpinnerImageForIE();", 10);
}
}
连接的CSS样式如下:
/* Loader spinner styles */
div#SpinnerContainer
{
position: absolute;
display: none;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: #fff;
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
z-index: 1000; /* Important to set this */
}
div#Spinner
{
position: absolute;
display: none;
width:50px;
height: 50px;
top: 48%;
left: 48%;
z-index:1001;
overflow: auto;
}
在我的子表单中,我的按钮调用javascript,如下所示:
<asp:Button ID="btnFilter" ToolTip="Select to search for patients using the above filter criteria" runat="server" Text="Filter"
onclick="btnFilter_Click" OnClientClick="return BeforePostBack()" CssClass="btnDownloadSearchClear"/>
这一切都很好 - 我按下按钮,我得到了我的微调器。大。
但是,在我的代码中,我需要能够隐藏微调器。所以在我的c#服务器代码中,我使用:
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "HideSpinner();", true);
在我的子(主应用程序)页面中调用新的javascript函数,如下所示:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent2" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<script type="text/javascript">
function BeforePostBack() {
$('#PostBackResult').text('');
ToggleSpinnerBlock(true);
return true; //So that allow post back to server
}
function HideSpinner() {
$('#PostBackResult').text('');
HideSpinnerBlock(false);
return true; //So that allow post back to server
}
</script>
然后按如下方式调用母版页面javascript:
function HideSpinnerBlock(Visible) {
var displayValue = Visible ? "block" : "none";
document.getElementById("Spinner").style.display = 'none';
document.getElementById("SpinnerContainer").style.display = 'none';
}
现在我100%知道正在调用javascript HideSpinnerBlock(我已经通过Firebug发送警报和错误代码),并且正在调用它,但是微调器错误仍然在屏幕上。
有什么想法吗?
PS - 是的,我知道我的HideSpinnerBlock可以使用False设置调用ToggleSpinnerBlock,但在此失败后,我决定对其进行硬编码。
有什么想法吗?我正在把头发拉出来。
答案 0 :(得分:0)
也许尝试将背景设置为无。这就是你的微调器。你应该真正创建一个具有诸如......的属性的类
.hideSpinner {
display: none !important;
background: none !important;
background-image: none !important;
}
然后只需添加课程......
var d = document.getElementById("Spinner");
d.className = d.className + " hideSpinner";