JQuery remplacement pour onclick

Je viens tout juste de découvrir le pouvoir de jQuery. Juste une petite question.

Qu'est-ce qu'un remplacement pour onclick = "DeleteSomething ('THE ID NUMBER LOADED IN PORTE SERVER')"?

Y a-t-il même une façon de transmettre des informations personnalisées telles qu'un ID à un jquery onclick? Ou dois-je rester à l'ancienne?

Merci beaucoup!

Adam

J'utilise habituellement un rel = "" pour certaines données supplémentaires dont je pourrais avoir besoin en ajoutant au bouton ou à quoi que ce soit.

par exemple

<input class="btnDelete" rel="34" value="Delete" /> 

Alors jquery

 $('.btnDelete').click(function() { DeleteMethod($(this).attr("rel")); }); 

Si vous collez l'ID de l'objet que vous souhaitez supprimer dans le paramètre rel, vous pouvez le faire de cette façon:

 <script type="text/javascript> $('a.deleter').click(function(){ if($(this).attr("rel") != ""){ DeleteSomething($(this).attr("rel")); } }); </script> <a href="javascript:void(0)" rel="54" class="deleter">Delete Widget</a> 
 $(document).ready(function () { $('#selector').click(function() { //here goes your onclick code }); ); 

S'il vous plaît, postez un marquage pour plus d'aide.

De plus, vous devez lire les Principes de début des ressources jQuery , liés dans la page principale de la bibliothèque.

Dans jQuery, vous voudriez probablement faire quelque chose comme:

 $('a').click(function(){ # code here }); 

Avec 'a' étant n'importe quel sélecteur que vous souhaitez utiliser pour trouver le bon lien.

En réponse à votre commentaire:

Probablement la meilleure façon, comme quelqu'un d'autre l'a mentionné, serait de fournir les données dynamiques dans l'un des attributs du lien:

 <a rel="{id}" > $('a').click(function(){ deleteFunction($(this).attr('rel')); }); 

Au lieu de cela:

 <button onclick="DeleteSomething('THE ID NUMBER LOADED IN BY SERVER SIDE')"> 

Faire cela:

 <button id="thing"> <script> $(function() { $("#thing").click(function() { DeleteSomething('THE ID NUMBER LOADED IN BY SERVER SIDE'); } } <script> 

Il serait beaucoup plus propre si vous le faites de cette façon:

 <tag class="someclass" prop1="id from serverside" /> $('.someclass').click(function(){ var prop1 = $(this).attr('prop1'); //DeleteSomething(prop1) }); 

Utilisez le serveur pour remplacer {ID} par l'ID réelle.

HTML:

 <form id="deleter"> <input type="hidden" name="id" value="{ID}" \> <input type="submit" value="Delete" rel="{ID}" \> </form> 

JQuery:

 $('form#deleter input[type="submit"]').click(function() { var id = $(this).attr('rel'); DeleteSomething(id); return false; } 

N'oubliez pas d'implémenter la suppression du serveur-côté également pour les personnes qui n'ont pas Javascript activé!