web-dev-qa-db-fra.com

Comment faites-vous une balise div dans un lien

Comment faites-vous une balise div dans un lien. Je voudrais que toute ma div soit cliquable.

14
Alan

JS:

<div onclick="location.href='url'">content</div>

jQuery:

$("div").click(function(){
   window.location=$(this).find("a").attr("href"); return false;
});

Assurez-vous d'utiliser cursor:pointer pour ces DIV

15
3zzy

Si vous devez définir votre balise d'ancrage dans la div, vous pouvez également utiliser CSS pour définir l'ancre afin qu'elle remplisse la div via display: block.

En tant que tel:

<div style="height: 80px"><a href="#" style="display: block">Text</a></div>

Désormais, lorsque l'utilisateur fait flotter son curseur dans cette div, la balise d'ancrage remplit la div.

11
Justin Yost

Si vous utilisez HTML5, comme indiqué dans cet autre question, vous pouvez placer votre div dans a:

<a href="http://www.google.com"><div>Some content here</div></a>

Préférez cette méthode car elle indique clairement dans votre structure que tout le contenu est cliquable et où il pointe.

10
8
zzzzBov

NE LE FAITES PAS.

  • Si vous voulez un lien, placez le contenu dans le <A>NCHOR</a> approprié.
  • Si vous voulez transformer le <DIV> en un lien, utilisez "Javascript" pour envelopper le <DIV> dans un <A>NCHOR</A>
  • Si vous souhaitez effectuer une action lorsque vous cliquez sur le <DIV>, utilisez le gestionnaire d'événements onclick ... et ne l'appelez pas un "lien".
7
chakrit
<div style="cursor:pointer" onclick="document.location='http://www.google.com'">Content Goes Here</div>
5
Ryan Michela
<div style="cursor:pointer;" onclick="document.location='http://www.google.com'">Foo</div>
2
Rob

Vous pouvez créer la fonction DIV entière en tant que lien en ajoutant un onclick = "window.location =" URL CIBLE "" et en définissant son style sur "curseur: pointeur". Mais c'est souvent une mauvaise idée de le faire car les moteurs de recherche ne pourront pas suivre le lien résultant, les lecteurs ne pourront pas s'ouvrir dans des onglets ou copier l'emplacement du lien, etc. puis définissez son style sur display: block, puis appelez-le comme un DIV.

2
Ben Regenspan

Vous pouvez utiliser Javascript pour obtenir cet effet. Si vous utilisez un framework, ce genre de choses devient assez simple. Voici un exemple dans jQuery :

$('div#id').click(function (e) {
  // Do whatever you want
});

Cette solution présente l’avantage de ne pas conserver la logique dans votre balise.

2
James Thompson

Gardez à l'esprit que les araignées de recherche n'indexent pas le code JS. Ainsi, si vous insérez votre URL dans du code JS, veillez également à l'inclure également dans un lien HTML traditionnel ailleurs sur la page. Autrement dit, si vous souhaitez que les pages liées soient indexées par Google, etc.

0
sifr4