2009-10-29 8 views
1

Je suis en train de ce qui suit:En utilisant jQuery.event pour détecter le lien qui a été cliqué

var showTooltip = function(event) { 
if(event.target == "<a href=\"view_repair.php\">") { 
$tooltip 
    .text('View full repair details') 
    .fadeIn('slow'); 
positionTooltip(event); 

console.log (event.target) dans Firebug donne

<a href="view_repair.php"> 

Mais le code de la si l'instruction n'est pas en cours d'exécution. Est-ce parce que l'instruction if compare avec la chaîne actuelle, y compris les échappements?

Quand je change la si déclaration:

if(event.target == event.target) 

j'obtenir le résultat souhaité.

Ce que je voudrais vraiment être en mesure de faire est d'utiliser le nom du lien/titre pour faire la comparaison, à savoir (pseudo code):

if(event.target.text() == "View") 

Est-ce possible de quelque façon?

Répondre

1

Vous essayez de comparer un objet élément DOM avec une représentation sous forme de chaîne de ce à quoi pourrait ressembler son tag, qui ne sont pas égaux. Que diriez-vous quelque chose comme:

if(event.target.attr('href') == 'view_repair.php') 
1

essayer

alert('event target is:' + event.target); 

Cela devrait vous dire la valeur.

Vous pouvez tester votre valeur pour la comparaison avec

alert('<a href=\"view_repair.php\">'); 
+0

citation manquante dans la première déclaration – TStamper

+0

@TStamper Il n'y a pas ;-) citation manquante –

+0

lol ... lissez vous l'avez fait avant le montage drapeau attrapé – TStamper

1

Pourquoi ne pas donner le lien un attribut title et extraire le texte d'info-bulle, puis retirez-le. Il n'est alors plus nécessaire de coder en dur des valeurs dans votre fonction.

<a href="view_repair.php" title="View full repair details" class="tool">View</a> 


$('.tool').each(function() { 
    var $this = $(this); 
    var tip = $this.attr('title'); 
    $this.removeAttr('title'); 
    $this.hover(
      function(e) { 
       $tooltip.text(tip).fadeIn('slow'); 
       positionTooltip(e); 
      }, 
      function(e) { 
       $tooltip.fadeOut('slow'); 
      } 
    ); 
}); 
Questions connexes