我的一些ascx文件中包含此代码:
<%=Html.ActionLink(Resources.Localize.Routes_WidgetsEdit, "Edit", "Widget",
new { contentType = Model.ContentType, widgetSlug = Model.Slug, modal=true},
new
{
rel = "shadowbox;height=600;width=700",
title = Resources.Localize.Routes_WidgetsEdit,
@class = "editWidget"
})%>
注意那个rel=“shadowbox…”。这是为这个actionLink连接shadowbox lightbox克隆。
当用户通过普通浏览器请求包含此用户控件的页面时,此功能正常。但我也通过Ajax请求呈现/构建那些视图用户控件。例如,我将向/widget/rendertostring/发出请求。使用jquery.ajax()方法,它将返回该控件的HTML代码。这样做很好,代码也很好。然后,我将把结果插入(附加)到一个页面中的一个DIV中,在该页面中发出Ajax请求。这也很好,返回的HTML将被附加。唯一的问题是-shadowbox没有连接。即使它的代码被呈现。
似乎每次都需要重新加载页面(F5)才能连接阴影框。由于我正在执行Ajax获取和即时附加,以避免不得不进行服务器往返,所以我还希望shadowbox在不刷新的情况下连接起来。
有人能帮我吗?谢谢你
更新:
是的,我的网站上有这个。校长:
<script src="<%=Url.Content("~/Scripts/shadowbox-build-3.0rc1/shadowbox.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
// insert functions calls here that provide some default behaviour
externalLinks();
});
Shadowbox.init({
language: "en",
players: ["img", "html", "iframe"],
onClose: function() { location.reload(true) }
});
</script>
如何在Ajax调用后再次初始化阴影框?