Xai*_*oft 11 c# asp.net jquery jquery-ui
我有以下DIV标记:
<div id="dialog" title="Membership Renewal">
Your membership is going to expire.
</div>
Run Code Online (Sandbox Code Playgroud)
我有以下javascript来执行JQuery:
<script type="text/javascript">
function showjQueryDialog() {
$("#dialog").dialog("open");
//alert("Time to renew Membership!");
}
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true,
buttons: { "Renew Membership": function() { $(this).dialog("close"); } }
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我有一个asp:Button在一个控件内,控件在一个母版页上.我注意到的第一件事是,当页面加载时,div显示,然后在页面加载完成后消失.当我单击按钮时,它执行以下操作:
if (timeSpan.Days >= 30)
{
//Show JQuery Dialog Here
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "showExpiration",
"showjQueryDialog()", true);
}
Run Code Online (Sandbox Code Playgroud)
当我单击按钮而不是弹出对话框时,div的内容才会变得可见.
Joe*_*ton 19
我知道现在已经老了.但是,将您的类设置为ui-helper-hidden中构建的jQuery UI.
<div id="dialog" title="Membership Renewal" class="ui-helper-hidden">
Your membership is going to expire.
</div>
Run Code Online (Sandbox Code Playgroud)
这将解决你的div不想要的客串行为.
Jer*_*ine 16
我相信你在这里有两个相关的问题.
第一次加载时DIV显示的原因是因为你还没有告诉它.使DIV表现为对话框的jQuery脚本在加载HTML DOM之前不会运行,并且在此之前它不会隐藏DIV.一个简单的解决方案是默认使用CSS隐藏DIV.
<div id="dialog" title="Membership Renewal" style="display:none;">
Your membership is going to expire.
</div>
Run Code Online (Sandbox Code Playgroud)
按钮单击问题是相关的:RegisterClientScriptBlock将输出一个遇到它时运行的脚本,因此将其转换为对话框的jQuery代码还没有机会运行.为了给它一个机会,你可以改变要使用的C#代码RegisterStartupScript,这将延迟执行showjQueryDialog()直到页面加载完毕并且jQuery代码有机会将DIV变成对话框.
if (timeSpan.Days >= 30)
{
//Show JQuery Dialog Here
ScriptManager.RegisterStartupScript(this, typeof(Page),
"showExpiration", "showjQueryDialog()", true);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15193 次 |
| 最近记录: |