在动态内容中触发 Fancybox
我的 标签包含对 Fancybox 函数的调用,将在从 ajax 调用后加载。单击链接后,模式窗口不会显示。我尝试以静态方式使用
并且它可以工作,但不能通过动态代码。我还注意到,在我的 ie 浏览器中查看“源”时,该标签不存在。有什么帮助吗?谢谢!!
这段代码将在从服务器端调用ajax后动态创建(我使用的是java)。我使用 class 作为 jquery 函数的链接,因为标签可以是具有相同类名的多个实例:
<a class="link" href="#task" title="Details">View details</a>
<div style="display: none;">
<div id="task" style="width:400px;height:100px;overflow:auto;">
some data from the server.
</div>
</div>
这是我的 fancybox 函数:
$("a.link").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
My <a>
tag which has the call for the Fancybox function will load after calling from ajax. Upon clicking on the link, the modal window wont show up. I tried using the <a>
in a static way and it works, but not through dynamic code. I also noticed that upon viewing "Source" in my ie browser, the tag is not present. Any help? Thanks!!
this code will be created dynamically after calling ajax from the server side (I'm using java). Im using class as my link to the jquery function because the tags can be several instances with the same class name:
<a class="link" href="#task" title="Details">View details</a>
<div style="display: none;">
<div id="task" style="width:400px;height:100px;overflow:auto;">
some data from the server.
</div>
</div>
This is my fancybox function:
$("a.link").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
fancyBox从v2.0开始使用“live”来绑定点击事件,因此它也适用于动态创建的元素。
fancyBox starting from v2.0 uses "live" to bind click event, so it will work for dynamically created elements, too.
当文档准备好后动态添加新元素到 DOM 时,fancybox 无法“绑定”这些新元素,相反,您可以尝试使用 delegate() 监听这些元素上的事件,然后动态创建一个如下所示的信息框
:它对我有用!祝你好运!
When you dynamic add new elements to DOM after document is ready, fancybox is unable to "bind" those new elements, instead you can try to listen for events on those elements with delegate() and then dynamically create a infobox like this:
At least it worked for me! good luck!
在这种情况下,您可能必须使用 livequery
You might have to use livequery in this situation
使用 jQuery().live('mouseenter') 允许 fancybox 附加到动态内容。
确保不要使用 jQuery(this).fancybox(); ,否则它只会查找“mouseenter”内的项目,这很可能只是一张图像并破坏画廊。
Use jQuery().live('mouseenter') to allow fancybox to attach to dynamic content.
Make sure NOT to use
jQuery(this).fancybox();
or else it will only look for the items inside "mouseenter", which will more than likely only be one image and break galleries.