我正在使用 Fancybox 2.0.6 和 jQuery 1.7.2。
我有一个带有两个更新面板的 asp.net 网页,一个在左侧,一个在右侧。在左侧有一个带有问卷结构的 Telerik RadTreeList 控件,选择一个问题会使用该问题的细节更新右侧面板。
还有一个按钮(称为 ActionButton,在更新面板之外)触发服务器端事件以生成问题答案的 id。然后,该事件使用答案 ID 更新隐藏链接,并通过将隐藏文字设置为可见来触发花式框。
<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时,它可以正常工作?!?
我究竟做错了什么?在穿着长臂衬衫的人出现之前帮助我...
问候,斯特凡