1

我有一个使用 jQuery函数index.html加载内容的文件,其中包括所有 JS 文件,也包括以下内容。load()index.html

这是代码:

$(document).ready(function(){
    function showNewContent() {
      $('#wrapper').fadeIn('normal',hideLoader);
    }
    function hideLoader() {
      $('#load').fadeOut('normal');
    }
    $('#menu li.load a').click(function() {
        // Change Content
        var toLoad = $(this).attr('href')+' #all_content';
        $('#wrapper').fadeOut('fast',loadContent);
        $('#load').remove();
        $('body').append('<div id="load"></div>');
        $('#load').fadeIn(0);
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#wrapper').load(toLoad,'',showNewContent);
        }
    });

    ...some more code...

    $('.fancy').click(function() {
        $.fancybox.open([
             {
                 href : 'img/img1.jpg'
             }, {
                 href : 'img/img2.jpg'
             }, {
                 href : 'img/img3.jpg'
            }
        ], {
            helpers : {
                thumbs : {
                    width: 75,
                    height: 50
                }
            }
        });
    });
});

我正在将另一个文件 (news.html) 中的内容加载到 index.html 文件中。在这个 news.html 文件中有一个链接

<a class="fancy" href="javascript:;"><img src='img/img1.jpg' /></a>

但fancyboy 不起作用。我怎样才能让它工作?

直到现在我还没有找到适合我的解决方案。如果有人有答案或链接,我可以在其中找到有用的东西,那就太好了。提前致谢!

4

2 回答 2

0

您需要事件委托,因为此锚是动态加载的,请将 click 事件绑定到已存在的元素:

$(document).on('click', '.fancy', function() {
    //do stuff
});
于 2013-06-10T15:11:00.703 回答
0

您最好使用加载内容后调用的初始化脚本,这比使用 document.ready() 更好。当 document.ready() 被调用时,内容不存在,如果这是你提到的,我们会在之后加载它。

于 2013-06-10T15:12:47.743 回答