5

我正在尝试绑定花式框链接,以便在创建新链接时它仍然可以工作。我在这里看到了其他一些问题,但没有真正回答。这就是我想要做的。

jQuery("a#[id^='domore_']").fancybox({
'autoDimensions' : false,
'width'           : 'auto',
'height'          : 'auto'
});

这工作正常,但是当页面或链接由 ajax 重新加载时,它不起作用。我尝试使用 live() 但我无法让它工作。你如何在fancybox 上重新绑定或实现live?有什么办法可以做到这一点?谢谢

4

3 回答 3

11

我个人使用jQuery 的 live 函数

jQuery("a#[id^='domore_']").live('click', function(){
    jQuery.fancybox({
        'autoDimensions':假,
        “宽度”:“自动”,
        “高度”:“汽车”,
        'href' : $(this).attr('href')
    });
    返回假;
});

注意:与您的问题并不真正相关,但请注意 jQuery 1.4.2 在 IE 中的选择上使用更改事件时会出现一些问题,但 1.4.1 目前似乎没问题。(在 Google 上搜索“在 IE 的 Jquery 1.4.2 中损坏的“更改”事件的 live() 方法(在 1.4.1 中工作)”,我无法添加链接,因为我是新手)

希望能帮助到你

于 2010-05-11T16:20:14.967 回答
2

你可以使用这个。它对我有用

$('.address').live('click',
function(){                 
    $(this).fancybox({
        'width'         : '40%',
        'height'        : '70%',
        'autoScale'     : false,
        'transitionIn'  : 'none',
        'transitionOut' : 'none',
        'type'          : 'iframe',
        'onClosed'      : function() {
            $("#basket").load("/order/basket");   
        }
    }).trigger("click"); 
    return false;
});
于 2010-09-17T10:59:50.313 回答
1

您可能必须在您的 ajax 成功/回调方法中包含 faceybox 函数调用:

$.ajax({
  url: 'test.html',
  success: function(data) {
    $('.result')
     .html(data)
     .find("a#[id^='domore_']").fancybox({
       'autoDimensions' : false,
       'width'          : 'auto',
       'height'         : 'auto'
     });
  }
});
于 2010-05-05T16:55:14.967 回答