我有6个缩略图像asp:imagebutton
个实例。这些被视为包含asp:updatepanel
控件的页面上asp:image
控件的触发器。
当用户单击缩略图时,asp:updatepanel
图像控件中的图像将更改为单击的缩略图图像。
用户还可以通过单击放大按钮再次放大图像(这将运行lightbox
功能)。这很好用。
问题
问题是当页面加载时放大工作,但是当用户选择缩略图然后尝试时。方法(lightbox
)不起作用
我对javascript
函数和asp:updatepanel
有类似的问题。还有其他人遇到类似的问题吗?如果是这样,我该如何解决这个问题?
答案 0 :(得分:0)
以下javascript是defalut之一,没有asp:UpdatePanel
<script type="text/javascript">
$(function()
{
$('#gallery a').lightBox();
});
</script>
但它不能与asp:UpdatePanel
一起使用,因此需要在页面加载时调用函数,它可以正常工作。
<script type="text/javascript">
function pageLoad(sender, args)
{
$('#gallery a').lightBox();
}
</script>
感谢各位帮忙。
答案 1 :(得分:0)
只有在第一次加载页面时才会执行$ function(DOM就绪函数)。 任何进一步的AJAX调用(这是部分加载/呈现)都不会触发DOM就绪函数。这就是原因,你无法让它发挥作用。
在这种情况下,此功能会在第一次加载页面时将您的锚点链接(按钮)与灯箱行为绑定在一起。所以,它的工作原理。下次刷新更新面板(部分渲染)时,该按钮不会再次绑定到灯箱。除非达到这种约束,否则它不会出现。
通常在这种情况下使用脚本控件来在每次加载控件时触发事件。 如果你不关心隔离相关对象,像pageLoad这样的解决方案仍然没问题。
答案 2 :(得分:0)
解决:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<script src="../slimbox-2.05/slimbox2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function pageLoad() {
jQuery(function ($) {
$("a[rel^='lightbox']").slimbox({/* Put custom options here */
}, null, function (el) {
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
});
});
}
</script>