我正在尝试绑定Fancy框链接,以便在创建新链接时它仍然有效。我在这里看到了一些其他问题,但没有真正回答。这就是我想要做的。
jQuery("a#[id^='domore_']").fancybox({
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto'
});
这很好但是当ajax重新加载页面或链接时它不起作用。我尝试使用live(),但我无法让它工作。你如何重新启动或实现fancybox上的直播?有什么办法吗? 感谢
答案 0 :(得分:11)
我个人使用jQuery's live function。
jQuery("a#[id^='domore_']").live('click', function(){ jQuery.fancybox({ 'autoDimensions' : false, 'width' : 'auto', 'height' : 'auto', 'href' : $(this).attr('href') }); return false; });
注意:与您的问题没有真正关联,但要注意jQuery 1.4.2在IE中选择使用更改事件时有点问题,但1.4.1似乎没问题目前。 (在Jquery 1.4.2 for IE中搜索“更改”事件的“live()方法”(在1.4.1中工作)“在谷歌上,我不能添加链接,因为我是新的)
希望有所帮助
答案 1 :(得分: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;
});
答案 2 :(得分:1)
您可能必须在ajax success / callback方法中包含faceybox函数调用:
$.ajax({
url: 'test.html',
success: function(data) {
$('.result')
.html(data)
.find("a#[id^='domore_']").fancybox({
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto'
});
}
});