2009-08-18 12 views
0

Ok J'ai corrigé le problème original mais je voudrais maintenant ajouter la valeur du titre à la balise d'ancrage de id = "contact" de la fenêtre contextuelle id = "contact-info" avant Je supprimer le menu contextuelL'infobulle jQuery ne fonctionnait pas comme prévu - RÉVISÉ

la JS

this.contactPreview = function() { 
jQuery("a.contact").click(function(e){ 
     this.t = this.title; 
     this.title = ""; 
     var c = (this.t != "") ? "<br />" + this.t : ""; 
     jQuery("body").append("<p id='contact-info'>"+ this.t + "<a id='close-contact' class='close-contact' style='color:red;'>Close</a></p>"); 
     jQuery("#contact-info") 
      .css("top", (e.pageY - xOffset) + "px") 
      .css("left", (e.pageX + yOffset) + "px") 
      .fadeIn(500); 
    }); 

    jQuery("a.close-contact").live('click', function(){ 
     // Need to re-insert the popup info into the original title tag of contact 
     jQuery('#contact-info').remove();   
    }); 
}; 

// Use jQuery() instead of $()for WordPress compatibility with the included prototype js library which uses $() 
// http://ipaulpro.com/blog/tutorials/2008/08/jquery-and-wordpress-getting-started/ 
// See http://chrismeller.com/using-jquery-in-wordpress 
jQuery(document).ready(function(){ 

    // Call the function here 
    contactPreview(); 

}); 

le CSS

#contact-info{ 
    position:absolute; 
    border:1px solid #ccc; 
    background:#333; 
    padding:5px; 
    display:none; 
    color:#fff; 

le code HTML

<a class='contact' title='Some info to display'>Display Info</a> 

Merci à l'avance pour toute aide sur ce

+1

@Phill Pafford - Si votre problème d'origine est résolu, vous devez cocher la réponse qui l'a résolu et poser une autre question. – karim79

Répondre

0

http://docs.jquery.com/Events/live fera l'affaire.

Ceci ajoutera automatiquement l'événement click lorsque le CLOSE <A> est créé. Qu'est-ce que vous avez fait, vous avez ajouté l'événement lorsque le document est chargé, mais le FERMER <A> n'est pas encore chargé.

$("a.close-contact").live("click", function() 
{ 
    $(this).fadeOut(500); 
}); 
+0

alors est-ce que j'ajoute le live() au double clic() ??? –

+0

Seul le clic créé avec le code. –

+0

hmm qui semble résoudre l'un des problèmes, maintenant je peux obtenir la fonction d'alerte pour fonctionner, mais il ne peut pas trouver l'id de l'étiquette d'origine pour l'enlever. BTW j'ai ajouté le live() à la popup –

Questions connexes