0

HTML:

<div class="left">
    <a rel="group" href="images/reveal.jpg" title="Lorem ipsum dolor." class="fancybox"><img src="images/images3.jpg"></a>
    <a rel="group" href="images/reveal2.jpg" title="Lorem ipsum dolor." class="fancybox"><img src="images/images1.jpg"></a>
    <a rel="group" href="images/reveal3.jpg" title="Lorem ipsum dolor." class="fancybox"><img src="images/images2.jpg"></a>
</div>

JS:

<script type="text/javascript">
$(document).ready(function() {
    $(".fancybox").fancybox({
        afterLoad: function() {
            this.inner.append('<p>TEST</p>');
            this.content = '<p>TEST2</p>' + this.content.html();
        }
    });
});
</script>

有了以上内容,我在 Firebug 中得到一个错误:“this.inner is undefined”。

我显然错过了一些东西,但我已经盯着这个太久了,看不到它是什么。任何帮助,将不胜感激。

编辑: 感谢您的建议。

我尝试了其中的每一个,但无济于事。我最终放弃了我尝试使用的方法,我只是要调用一个 div,并在那里设置我的内容。

最终结果将类似于此处的 HTML:http: //jsfiddle.net/NjNMC/。不会使用该示例中的 JS;这就是整个混乱局面的开始。

4

5 回答 5

2

这是一个有年头的问题,但这可能对正在搜索的人有所帮助..

尝试使用beforeShow在打开动画开始之前调用的“”回调..

更多信息在这里..

于 2013-08-27T11:34:42.170 回答
2

而不是this.inner.append('<p>TEST</p>');尝试$(this).html('<p>TEST</p>');

于 2012-05-28T19:07:00.230 回答
0

你可能想在fancybox 窗口中注入这个html。您不是用 te 关键字指代this,请尝试$('#fancybox-outer') 注意,这是无证使用。

于 2012-05-28T19:12:30.340 回答
-1

尝试

$(document).ready(function() {
    $(".fancybox").fancybox({
        afterLoad: function() {
            $(".fancybox")[0].inner.append('<p>TEST</p>');
            //$(".fancybox")[0].content = '<p>TEST2</p>' + $(".fancybox")[0].content.html();
        }
    });
});
于 2012-05-28T19:05:24.823 回答
-1
 $("a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox({
     openEffect: 'none',
     closeEffect: 'none',
     afterLoad: function () {
         this.outer.prepend('<a href="index.html"> <img src="img/logo.svg" class="logoShow"></a>');
         this.outer.append('<div id="btnExpand"><img src="img/nav_menu_expand.png" input type="submit"/></div>');
     }
 });
于 2015-03-17T07:12:43.280 回答