jQuery: Comment puis-je ajouter un gestionnaire d'événements click pour une classe et de savoir quel élément a été cliqué?

J'ai été en utilisant la méthode suivante pour ajouter un événement click d'un id, je me demandais si je pouvais faire la même chose avec une classe.... J'ai un certain nombre d'éléments (qui sont créés dans une boucle for each) et j'ai besoin d'être en mesure de cliquer dessus puis de ramassage qui a cliqué... voici mon code existant

$('submit-button').bind('click', submit_click);


function submit_click() {
    alert('I am clicked');
}

Je me demandais si il est possible de passer une variable dans ma fonction pour le clic afin que je puisse vérifier l'ID?? ou similaire

donc ce

function submit_click(element) { //notice element
    alert(element + ' clicked');
}

Toute aide vraiment apprécié

Merci

MODIFIER

J'ai essayé ce qui suit, et en debug "elem" n'est pas défini...

$('.clear').bind('click', clear_click($(this)));

   function clear_click(elem) 
   {
        alert(elem.attr("id"));
   }

SOLUTION DE TRAVAIL

J'ai la solution de travail, mais je ne comprends pas tout pourquoi, j'aimerais savoir pourquoi cela fonctionne..

Tout d'abord j'ai essayé

 $('.clear').bind('click', clear_click($(this)) );

Cela semblait fonctionner "MAIS" quand j'ai chargé la page, entrez le "clear_click" méthode sans être cliqué étrange...

Ensuite j'ai essayé ce..

 $('.clear').bind('click', function() { clear_click($(this)) } );

Cela fonctionne très bien! Mais je ne comprends pas pourquoi je dois passer une fonction et au sein de cet appel de fonction mon clear_click.

Quelqu'un peut-il expliquer pourquoi 1 travaille et que l'autre ne l'est pas?

Chaque fois que j'ai besoin d'appeler une fonction de rappel ou similaire, je dois d'abord ouvrir une fonction (), puis appelez la méthode à l'intérieur de la fonction?

Veuillez voir mon edit de ma réponse.

OriginalL'auteur mark smith | 2009-12-16