Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新加载DIV后JQuery Fancybox不工作_Javascript_Jquery_Fancybox - Fatal编程技术网

Javascript 重新加载DIV后JQuery Fancybox不工作

Javascript 重新加载DIV后JQuery Fancybox不工作,javascript,jquery,fancybox,Javascript,Jquery,Fancybox,我在我的网站上使用打开指向其他外部页面的链接 基本上,用户点击一个图像,就会打开一个包含外部页面的fancybox。图像链接包含在另一个页面(父页面)的DIV中显示的子页面中。父级可以通过使用不同的参数重新加载子页面来重新加载DIV中的数据,这将导致图像和链接发生更改 这一切在第一次加载时都能完美工作。但是在这之后,当DIV重新加载包含不同数据的子页面时,fancybox弹出窗口不再工作。如果我在页面上执行F5刷新,它将再次工作。但仅在第一次加载时 子页面上用于为图像链接设置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的想法?