2008-12-29 4 views
1

Est-il possible d'ajouter une fonction jQuery afin qu'un clic dans une cellule de table invoquera un < caché a href = "javascript: ..."/élément > (qui est un descendant du TD)?jQuery: invoquer <a /> sous-élément de la table cellule

J'ai essayé avec

$ ('# Table td') cliquez sur (function() { $ (this) .Find ('a') cliquez sur(). }).

Une autre variante, mais pas de chance.

--larsw

+0

Juste une question: pourquoi ne pas faire le contenu des cellules de table l'élément (display: block)? – cletus

Répondre

2
<html> 
<head></head> 
<body> 
<table border=1> 
    <tr> 
     <td>a1<a href=# onclick='alert("a1")' /></td> 
     <td>a2<a href=# onclick='alert("a2")' /></td> 
    </tr> 
    <tr> 
     <td>b1<a href=# onclick='alert("b1")' /></td> 
     <td>b2<a href=# onclick='alert("b2")' /></td> 
    </tr> 
</table> 
<script src="scripts/jquery-1.2.6.min.js" ></script> 
<script> 
    $(function(){ 
     $('table td').click(function(){ $(this).find('a').click()}); 
    }) 
</script> 
</body> 
</html> 

Je l'ai fonctionne très bien avec ce clip ci-dessus. Cependant, voir votre sélecteur jQuery a un # en face de celui-ci, qui échouerait à moins que votre table ait un id de 'table'. Cela dit, il y a probablement une meilleure façon de faire ce que votre après que caché un tag avec javascript intégré dans eux.

+0

Bonne observation Corey. Je suis d'accord il semble que le # provoque le problème. Cela devrait être $ ('table td). –

5

Pourquoi ne bougez-vous pas votre code JavaScript de l'attribut href et dans votre événement de clic? jQuery a été conçu pour écrire du JavaScript discret.

Edit:

Non, mais vraiment, envisager de supprimer ces liens cachés en faveur de JavaScript discret. Voici les parties pertinentes de l'exemple de Corey le réécrite:

JS:

$(document).ready(function() { 
    $('table td').click(function(event) { 
     alert($(this).html()) 
    }) 
    }) 

HTML:

<table border="1"> 
    <tr> 
    <td>a1</td> 
    <td>a2</td> 
    </tr> 
    <tr> 
    <td>b1</td> 
    <td>b2</td> 
    </tr> 
</table>