2010-06-30 4 views

Répondre

2

Sans utiliser en direct ou délégué:

Ajouter une classe à la touche comme: curseur bouton

$(function() { 
    $('.slider-button').bind('click', function() { 
    if ($(this).hasClass('no')) { 
     $(this).animate({"left" : "80px"}, 150); 
     $(this).removeClass('no').addClass('click'); 
    } else { 
     $(this).animate({"left" : "0px"}, 150); 
     $(this).removeClass('click').addClass('no'); 
    }  
    });  
}); 
+0

ne fonctionne pas? Je ne suis pas sûr que je l'ai essayé dans pastebin et cela ne fonctionne que pour la gauche: 80px part il ne revient pas – andrei

+0

@andrei J'ai fait une correction maintenant essayer –

+0

@andrei {"left": "0px"} was –

0

La raison pour laquelle le second clic n'est pas est géré au moment où vous liez votre gestionnaire, il n'y a pas d'éléments input.click, donc le gestionnaire n'est pas lié

Pour vous assurer que le gestionnaire est lié après avoir modifié la classe d'entrée, vous devez utiliser live:

$(function() { 
    $('input.no').live('click', function() { 
    $(this).animate({"left" : "80px"}, 150); 
    $(this).removeClass().addClass('click'); 
    }); 

    $('input.click').live('click', function() { 
    $(this).animate({"right" : "0px"}, 150); 
    $(this).removeClass().addClass('no'); 
    }); 
}); 
Questions connexes