Javascript 重新加载DIV后JQuery Fancybox不工作
我在我的网站上使用打开指向其他外部页面的链接 基本上,用户点击一个图像,就会打开一个包含外部页面的fancybox。图像链接包含在另一个页面(父页面)的DIV中显示的子页面中。父级可以通过使用不同的参数重新加载子页面来重新加载DIV中的数据,这将导致图像和链接发生更改 这一切在第一次加载时都能完美工作。但是在这之后,当DIV重新加载包含不同数据的子页面时,fancybox弹出窗口不再工作。如果我在页面上执行F5刷新,它将再次工作。但仅在第一次加载时 子页面上用于为图像链接设置fancybox的代码:Javascript 重新加载DIV后JQuery Fancybox不工作,javascript,jquery,fancybox,Javascript,Jquery,Fancybox,我在我的网站上使用打开指向其他外部页面的链接 基本上,用户点击一个图像,就会打开一个包含外部页面的fancybox。图像链接包含在另一个页面(父页面)的DIV中显示的子页面中。父级可以通过使用不同的参数重新加载子页面来重新加载DIV中的数据,这将导致图像和链接发生更改 这一切在第一次加载时都能完美工作。但是在这之后,当DIV重新加载包含不同数据的子页面时,fancybox弹出窗口不再工作。如果我在页面上执行F5刷新,它将再次工作。但仅在第一次加载时 子页面上用于为图像链接设置fancybox的代
$.noConflict();
$(document).ready(function() {
$(".userdetailslink").fancybox({
'width' : '80%',
'height' : '80%',
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe'
});
});
我还尝试了以下方法,得到了相同的结果:
$.noConflict();
$(".userdetailslink").ready(function() {
$(".userdetailslink").fancybox({
'width' : '80%',
'height' : '80%',
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe'
});
});
任何帮助都将不胜感激。您是否使用AJAX方法来加载div?您可以使用回调函数将事件处理应用于加载的内容
$("div").load("url", function(){
$(".userdetailslink").fancybox({
'width' : '80%',
'height' : '80%',
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe'
});
});
这样,它也可以在加载后运行。当然,您可以按原样进行初始加载。谢谢,您的回复非常合理,但我尝试了,它仍然只在第一次加载时加载。然后,我只是在回调函数中添加了一个警报,以查看它是否在每次加载时都被调用。的确如此。但是,只要我将fancybox调用添加到回调中,即使警报也只显示一次。奇怪的有什么想法吗?更新:我在fancybox调用之前添加了另一个警报。每个加载都会执行一个,但fancybox调用后的加载只会在第一次加载时执行。是否对同一元素多次调用fancybox会导致错误?有没有关于如何从元素中取消连接fancybox的想法?