7

这是我的问题,这是我的示例代码。

HTML:

<a class="fancybox" rel="group" href="img1.jpg"> <img src="img1_thumb.jpg"> </a>
<a class="fancybox" rel="group" href="img2.jpg"> <img src="img2_thumb.jpg"> </a>

JS:

 var header = '<img id="w" src="logo.gif">';

$('.fancybox').fancybox({
    afterLoad: function() {
        this.wrap.prepend(header);
    }, // afterLoad
}); //fancybox

$('#w').click(function() {console.log('clicked');});

如果您单击缩略图来启动 FancyBox,afterLoad则会出现在标题中,但是当您单击图像并观看控制台时,您什么也得不到。

想法?我正在尝试使用 FancyBox 的$.fancybox.close()方法,但如果我无法触发 click 事件,我将被迫内联使用它,为了不使用 JS 内联,我宁愿不这样做。

4

1 回答 1

2

您应该使用.on()或等效于动态绑定,或在 afterLoad 回调中绑定。它与 Fancybox 无关:您使用 jQuery 选择器进行绑定,该选择器匹配 DOM 中尚不存在的内容。或者,您可以尝试直接绑定到内存中的元素,但您应该先熟悉使用 DOM 绑定。

于 2012-09-13T22:33:15.777 回答