Fancybox,让Fancybox使用LIVE()绑定到加载后加载到页面上的项目

AnA*_*ice 16 jquery binding fancybox

我有一个加载的页面,加载后,它会输入一个LI列表来填充新闻源.

<li><a href="/url/" class="quickview">quick view</a></li>
<li><a href="/url/" class="quickview">quick view</a></li>
<li><a href="/url/" class="quickview">quick view</a></li>
Run Code Online (Sandbox Code Playgroud)

当用户点击快速查看但没有任何运气时,我正试图让奇特的盒子触发.有任何想法吗?

$(document).ready(function() {
    $('.quickview').fancybox();
});
Run Code Online (Sandbox Code Playgroud)

还尝试过:

$(document).ready(function() {
   $('a.quickview').live('click', function() {
        $(this).fancybox();
    });
});
Run Code Online (Sandbox Code Playgroud)

http://fancybox.net/

谢谢你的任何想法......

Ste*_*eve 30

旧问题,但可能对未来的搜索者有用.

我首选的解决方案是在直播活动中手动启动fancybox,例如:

$('.lightbox').live('click', function() {
    $this = $(this);
    $.fancybox({
        height: '100%',
        href: $this.attr('href'),
        type: 'iframe',
        width: '100%'
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

编辑:从jQuery 1.7不推荐使用live(),而应该使用on().有关详细信息,请访问http://api.jquery.com/live/.


mon*_*nym 23

这应该在每个ajax请求之后工作

$(document).ajaxStop(function() { 
    $("#whatever").fancybox();
});
Run Code Online (Sandbox Code Playgroud)


Don*_*nia 11

问题是将fancybox附加到AJAX加载元素中,对吧?

我有同样的问题,我找到了这个解决方案.

我将其复制粘贴到此处,请参阅原始错误报告以获取更多信息:

$.fn.fancybox = function(options) {

$(this)
  .die('click.fb')
  .live('click.fb', function(e) {       
    $(this).data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
    e.preventDefault();
    [...]
Run Code Online (Sandbox Code Playgroud)

幸得jeff.gran.