2010-08-05 8 views
-1

J'ai un site web qui utilise ajax jquery et facebox. Démo ici: http://temp.nevergone.eu/facebox.php A l'intérieur du div "#content" il y a quelques liens vers d'autres pages qui s'ouvrent bien en utilisant la facebox.Problème Ajax et facebox

Si je recharge le contenu de cette div à l'aide d'ajax jquery, les liens ne s'afficheront plus à l'aide de l'effet Facebox.

J'ai essayé de créer une fonction que j'appellerais quand j'appelle la fonction qui change le contenu de div #content, mais pas de chance. Je sais que je dois reinit/reinoad recharger le visage à DOM chaque fois que je charge quelque chose de nouveau à la page qui contient rel = "lightbox", mais je ne peux pas comprendre comment.Je l'appelle à l'intérieur Cela fonctionne si j'utilise jquery fonction HTML, mais si j'utilise la fonction de charge, cela ne fonctionnera plus.

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

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

sometext.html ne contient que <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)'

Répondre

0

Je pense que je suis votre problème. vous réinitialisez votre script Facebox avant d'insérer le contenu.

Ce que vous avez actuellement est la suivante:

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>'); 
    } 

Vous devez déplacer votre fonction reinit ci-dessous l'insertion html comme ceci:

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

Parfois vous avez besoin juste une autre paire d'yeux sur un problème .

+0

Fonctionne avec html, mais si j'essaie de charger, ça ne marchera plus. – NVG

+0

html comme dans html Fonction jquery et chargement comme dans la fonction 'load' de jquery – NVG

+0

Vous devez déplacer l'appel de la fonction reinit() pour être après la partie de votre fonction où vous placez votre nouveau code HTML sur la page. donc après la partie $ ("# content"). html ('...') dans votre fonction updatec(). – Adrian