2010-11-22 6 views
2

Je souhaite créer une cellule <td> avec le lien qui s'y trouve. Code:jQuery affecter un lien href à son élément parent

<td class="block"> 
    <a href="expansion/r10_01.htm">text goes here</a> 
</td> 

Ainsi, lorsque l'utilisateur clique sur ne importe où dans cette cellule active le lien plutôt que sur le texte. Il existe différentes marges et bourrages sur la cellule qui empêchent l'expansion de href pour remplir toute la cellule. Il y aura aussi beaucoup de cellules à appliquer avec des liens différents dans chacun d'eux.

Comme toujours, toute aide appréciée. Merci.

Répondre

3

Deux options: Utilisez CSS pour régler le pour remplir la cellule de table afin qu'il soit cliqué par l'utilisateur.

OU:

utilisation JQuery ...

$('.block').click(function() { 
    $('a', this).click(); 
}); 

Cela ouvrira l'événement, cliquez sur le lien et il suivra son comportement par défaut.

+0

Cela fonctionne bien et transporte quelques paramètres supplémentaires avec le lien qui est génial bien qu'il semble déclencher d'autres effets sur la page pour une raison quelconque. Je pense que je suis en train de prendre un conflit quelque part, malheureusement. – Keith

2

Essayez ceci:

$(document).ready(function() 
{ 
    $("td.block").click(function() 
    { 
     var url = $("a", $(this)).attr("href"); 
     document.location = url; 
    }); 
}); 
+0

THanks, cela fonctionne bien si j'ai le code supplémentaire après le lien (je aurais dû signaler ceci) par exemple: Keith

+0

Si vous essayez de lancer une fenêtre thickbox, vous voudrez peut-être envisager la solution de js1568. Cela déclenche réellement un événement click sur le href comme s'il avait été cliqué. Cela devrait permettre à la thickbox de fonctionner normalement. – jyoseph

+0

Pourriez-vous préciser ce que vous voulez dire? L'emplacement du document doit être redirigé vers la valeur entière de la valeur de l'attribut 'href'. Est-ce que vous construisez dynamiquement la valeur de 'href' ou quelque chose? –

2

Lorsque vous cliquez sur le td dont vous avez besoin pour obtenir l'attribut href:

$('td.block').click(function(){ 

    // get the href 
    var thisHref = $(this).find('a').attr('href'); 

    location.href = thisHref; 

}); 

jsbin example link

Questions connexes