我使用的是Fancybox 2.0.6和jQuery 1.7.2。
我有一个asp.net网页,有两个更新面板,一个在左边,一个在右边。在左边有一个带有问卷结构的Telerik RadTreeList控件,选择一个问题将更新右侧面板中该问题的具体内容。
还有一个按钮(在更新面板之外称为ActionButton ),它触发服务器端事件来为问题的答案生成id。然后,该事件用答案id更新隐藏链接,并通过将隐藏文本设置为可见触发fancybox。
<a href="action.aspx" id="hidden_link" class="actionbutton" style="visibility: hidden;" runat="server"></a>
<asp:Button ID="btnAction" runat="server" meta:resourcekey="btnOpenAction" CssClass="formbuttons" OnClick="btnAction_Click" />
<asp:Literal runat="server" Visible="false" ID="Literal1" Text="<script type='text/javascript' language='javascript'>jQuery(document).ready(function () { $('#MainContent_hidden_link').trigger('click'); });</script>" />fancybox是一个iFrame,它包含另一个将更多详细信息保存到数据库中的网页。到现在为止还好。一切都如期而至。但是,我现在要做的是更新左边的更新面板,以显示已经添加了详细信息。
下面是fancybox代码:
$("a.actionbutton").fancybox({
'type': 'iframe',
'openEffect': 'elastic',
'closeEffect': 'elastic',
'openSpeed': 600,
'closeSpeed': 200,
'padding': 10,
'width': 800,
'height': 600,
afterClose: function () {
$('#ctl00$MainContent$btnHiddenAction').trigger('click');
alert('Ha!');
}
});我要疯了,因为我不能让afterClose的回调在关闭后启动。我得到我的“哈!”一单击ActionButton就会发出警报,在单击OK之后,fancybox将弹出。我试过使用beforeClose,但它根本不起作用。
将我的代码粘贴到jsFiddle中时,它可以正常工作吗?!?
我做错了什么?在穿长袖衬衫的人来之前帮帮我.
你好,斯特凡
发布于 2012-06-21 11:04:32
最后,我完全忽略了afterClose事件。
相反,我在fancybox的关闭脚本中添加了一个javascript调用,它位于fancybox所示的action.aspx页面的底部:
</body>
<script language="javascript" type="text/javascript"> function CloseMe() { parent.$.fancybox.close(); parent.document.getElementById('ctl00$MainContent$btnHiddenAction').click(); }</script>
</html>它对我有用,也许对外面的人有帮助.:)
https://stackoverflow.com/questions/11051632
复制相似问题