2010-02-06 3 views
2
$('a.minimize').click(function() { 
$($(this).attr('href')).hide(); 
}); 

<div class="drag" id="2"> 

<a href="#content" class="minimize" style="display: none;">2</a></p> 
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div> 
</div> 

je veux cacher le #content en définissant le a href = "", pourquoi ne fonctionne pas ???jquery, comment puis-je sélectionner attr href cible cacher

une erreur?

Répondre

0

hide() n'est pas la bonne fonction à utiliser sur un attribut. Il est utilisé pour définir la visibilité des éléments DOM.

Essayez ceci:

$(this).attr('href', '');

+0

$ (this) .attr ('href', ''); <<< cela tout cacher dans le div glisser – user267595

+0

je veux cacher le contenu #content dans le div glisser, mais ne cache pas le div glisser – user267595

0

.hide() est différent. Vous devriez l'avoir comme ça.

$ (this) .attr ('attr', 'valeur ici')

$ ($ (this) .attr ('href', ''));

0

Entourez votre événement d'étiquette d'ancre dans la fonction de préparation de document.

$(function(){ 
    $('a.minimize').click(function() { 
     $($(this).attr('href')).hide(); 
    }); 
}); 
1

Ce que vous voulez n'est vraiment pas clair, au moins pour moi. Les réponses que vous avez obtenues sont justes, car si vous voulez que l'attribut href soit vide, vous n'utilisez pas hide. Mais voici où je suis confus:

  1. Vous avez déjà display:none ensemble pour cette <a>, ce qui signifie qu'il ne sera pas apparaître du tout. Alors, comment un utilisateur va-t-il cliquer sur quelque chose avec lequel il ne peut pas interagir?

  2. Vous voulez "cacher" le <a> après avoir cliqué. Si je devais deviner que vous voulez:

    a. Faites disparaître le lien (avec le 2 qui s'affiche) après que l'utilisateur a cliqué dessus, ou b. Vous voulez que l'utilisateur ne clique sur le lien qu'une seule fois, et après cela, il devient un lien mort car il ne pointe sur rien.

Donc, en supposant que j'ai la moindre idée de ce que vous allez pour, faire le lien mort sur clic, suivez les conseils déjà donnés

$('a.minimize').click(function() { 
     $(this).attr('href', ''); 
}); 

Si vous voulez que le lien vers évaporent sur cliquez, aller avec:

$('a.minimize').click(function() { 
     $(this).hide(); 
}); 

Ou est-ce que je manque complètement le point?

+0

erm ... j'ai 2 un ensemble href, 1 est un.maximize, un autre 1 est a.minimize a.maximize régler l'un href dans a.maximize à une largeur de 100% à 100% avec la hauteur jquery animé et le a.minimize défini dans la minimiser un href (#content) pour masquer – user267595

+0

réponse Rahul c'est du travail, mais pourquoi seulement travailler une fois ???? exemple: après avoir cliqué sur a.maximize, a.minimize ne fonctionne plus – user267595

+0

Le seul travail de rahul est une fois car il est configuré pour s'exécuter sur le chargement du document, qui est le premier chargement de la page. Si vous souhaitez les utiliser encore et encore, vous devez définir une fonction .click pour les masquer et les afficher, et les définir toutes deux sur le chargement des documents. J'envisagerais d'utiliser 'toggle' pour ça. – Anthony

0

bien .. par où commencer .. tout d'abord cela ne fonctionnera jamais si vous ne montrez pas l'élément cliquable. donc vous devez supprimer le style = "display: none" comme ceci:

<div class="drag" id="2"> 

<a href="#content" class="minimize" >2</a></p> 
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div> 
</div> 

seconde. le javascript ne fonctionnera jamais si vous ne mettez pas sur les balises de script. et dernier et le plus important, vous ne pouvez pas essayer d'obtenir l'élément a.minimize avant que le navigateur ne le charge. Donc, vous pouvez soit shold soit exécuter le script après le html de l'élément en sortie ou le faire en toute sécurité avec l'événement ready de l'élément jQuery (document).voici donc le travail de code:

<script> 

jQuery(document).ready(function(){ 
$('a.minimize').click(function() { 

$($(this).attr('href')).hide(); 
}); 
}); 
</script> 

<div class="drag" id="2"> 

<a href="#content" class="minimize" >2</a></p> 
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div> 
</div> 
0

Si je vous comprends bien, vous voulez cacher la div avec l'id du « contenu » lorsque vous cliquez sur le lien avec la classe « minimiser ».

Ceci est la bonne façon de le faire:

$("a.minimize").click(function() { 
    $("#content").hide(); 
}); 

Ou, si vous voulez changer l'état du div avec l'id du « contenu » lorsque le lien est cliqué, essayez ceci:

$("a.minimize").click(function() { 
    $("#content").toggle(); 
});