这仅仅是因为您加载到 DOM 中的任何新内容都不会附加任何先前设置的事件处理程序。
因此,在这种情况下,您的 facebox 插件会在新内容加载到 ajax 选项卡之前进行初始化。因此,从本质上说,facebox 插件并不知道这些新链接的存在。
答案是在加载新内容后重新初始化插件。
所以你需要调用:-
$('a[rel*=facebox]').facebox()
...再次,一旦新的 ajax 选项卡内容被加载到 DOM 中。通过对 ajax 选项卡脚本的简要了解,我想您可以通过简单地重新初始化 facebox 插件(如上所示)来轻松解决这个问题,方法是将该行添加到每次将任何新内容加载到 ajax 选项卡时都会调用的函数中。
或者(更简单)您可以使用 jQuery livequery plugin 初始化 facebox 插件
使用此代码(在您的网站上包含 livequery 脚本后:-
$('a[rel*=facebox]').livequery(function() {
$(this).facebox();
});
Livequery 会在新加载的 Facebook 链接添加到 DOM 时自动检测它们,并为您应用 Facebook 插件。
编辑:
如果这仍然没有达到预期的效果(虽然我真的不明白为什么当我以前使用它时不作为实时查询是一个梦想)尝试这个肮脏的小技巧,每次你用鼠标解开和重新绑定 Facebook下。在任何新旧 Facebook 链接上。
$('a[rel*=facebox]').live("mousedown", function() {
$(this).unbind('click'); //everytime you click unbind the past event handled.
$(this).facebox();
});