Ajax 和 Facebox 问题

发布于 2024-09-12 23:07:36 字数 770 浏览 11 评论 0原文

我有一个使用ajax jquery 和facebox 的网站。 此处演示:http://temp.nevergone.eu/facebox.php 在 div“#content”内有一些指向其他页面的链接,可以使用 Facebox 正常打开。

如果我使用 ajax jquery 重新加载该 div 的内容,那么链接将不再使用 Facebox 效果弹出。

我尝试创建一个函数,每当我调用更改 div #content 内容的函数时都会调用该函数,但没有成功。我知道每次我向包含 rel="lightbox" 的页面加载新内容时,我都必须重新初始化/重新加载 Facebox 到 DOM,但我不知道如何实现。我在里面调用它 如果我使用 jquery HTML 函数它可以工作,但是如果我使用 load 函数它就不再工作了。

function updatec() {
    $("#content").load('sometext.html');
    reinit();
}

function reinit() {
  $('a[rel*=facebox]').facebox() ;
}

sometext.html 仅包含CLICK ME I DONT WORK(如果单击它,则无法使用 Facebox 打开,它将像普通链接一样打开)'

I have a website that uses ajax jquery and facebox.
Demo here : http://temp.nevergone.eu/facebox.php
Inside the div "#content" there are some links to other pages that open fine using facebox.

If I reload the content of that div using ajax jquery , then the links wont popup using facebox effect anymore.

I tried to create a function that I would call whenever I call the function that changes the contents of div #content , but no luck . I know that I must reinit/reload the facebox to DOM everytime I load something new to the page that contains rel="lightbox" ,but I cant figure it out how.I call this inside
It works if I use jquery HTML function , but if I use load function it wont work anymore.

function updatec() {
    $("#content").load('sometext.html');
    reinit();
}

function reinit() {
  $('a[rel*=facebox]').facebox() ;
}

sometext.html contains only<a href="http://www.google.com" rel="facebox">CLICK ME I DONT WORK</a>(if you click it it wont open using facebox,it will open like a normal link)'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑忘罢 2024-09-19 23:07:36

我想我明白你的问题了。您在插入内容之前正在重新初始化您的 Facebox 脚本。

您当前拥有的是这样的:

function reinit() {
   $('a[rel*=facebox]').facebox() ;
}
function updatec() {
reinit();
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT          WORK</a>');
  }

您需要将 reinit 函数移到 html 插入下方,如下所示:

function updatec() {    
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT          WORK</a>');
    reinit();
  }

有时您只需要另一双眼睛来关注问题。

I think I got your problem. you are reinitializing your facebox script before you insert the content.

What you currently have is this:

function reinit() {
   $('a[rel*=facebox]').facebox() ;
}
function updatec() {
reinit();
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT          WORK</a>');
  }

You need to move your reinit function below the html insertion like so:

function updatec() {    
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT          WORK</a>');
    reinit();
  }

Sometimes you just need another pair of eyes on a problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文