2010-03-26 9 views
-1

J'essaye de lier une fonction avec une classe inexistante. Je vais essayer d'expliquerjquery ajouter et supprimer le problème de classe

mes js:

function hidelink() 
{ 
     $('#user_form').hide(); 
     $('.selected').text("New User").removeClass('selected').addClass('unselected'); 
     return false; 

} 
function showlink() 
{ 
     $('#user_form').show(); 
     $('.unselected').text("Hide it").removeClass('unselected').addClass('selected');  
     return false; 

} 
$(function(){ 
    $('#user_form').hide(); 
    $('.unselected').click(showlink);  
    $('.selected').click(hidelink); 
}); 

mon html:

<div id="user_form"> 
<a href="/foobar" class="unselected">My Link</a> 
</div> 

Donc, fondamentalement, lorsque vous cliquez sur le lien, il va changer les classes (sélectionnées/désélectionnées) et se cacher/montre une div. Le problème est que, quand je clique une fois, il montre le formulaire, mais si je clique de nouveau sur le lien, le formulaire ne se cache plus. Peut-être parce que je suis en train de masquer les événements lorsque la page se charge et pour l'instant il n'y a pas d'élément qui corresponde au sélecteur ".selected" .. est logique?

Répondre

2

Peut-être parce que je suis Biding les événements lorsque la page se charge et à ce moment il n'y a pas l'élément correspondant du sélecteur « .selected » ..

Oui. Utilisez live().

Questions connexes