2009-11-25 7 views
2

J'ai récemment découvert la puissance de jQuery. Juste une question rapide cependant.jQuery remplacement pour onclick

Qu'est-ce qui remplace onclick = "DeleteSomething ('LE NUMÉRO D'IDENTIFICATION INSCRIT PAR LE CÔTÉ DU SERVEUR')?

Existe-t-il un moyen de transmettre des informations personnalisées telles qu'un ID à un jquery onclick? Ou dois-je rester à l'ancienne?

Merci beaucoup!

Adam

Répondre

6

J'utilise habituellement un rel = "" pour certaines données supplémentaires dont je pourrais avoir besoin attaché au bouton ou à autre chose.

par exemple

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

puis dans jquery

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

vous pouvez même lui donner un attribut hors du mur autre que rel (ie: deleteid) et y accéder de la même façon: $ (this) .attr ("deleteid") –

+0

wow je ne savais pas que je pouvais le faire. Je pense que c'est la solution! – Adam

1
$(document).ready(function() { 
    $('#selector').click(function() { 
    //here goes your onclick code 
    }); 
); 

S'il vous plaît, afficher quelques balises pour plus d'aide.

De même, vous devez lire les ressources Mise en route avec jQuery, liées dans la bibliothèque main page.

1

En jQuery vous serait plus probablement faire quelque chose comme:

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

Avec « un » étant tout sélecteur que vous souhaitez utiliser pour trouver le lien à droite.

En réponse à votre commentaire:

Probablement la meilleure façon, comme quelqu'un d'autre 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')); 
}); 
+0

Droit mais comment transmettre des données dynamiques à cette fonction? Comme dire que c'était un $ (". DeleteComment") .cliquez et vous avez plusieurs boutons avec cette classe, et quand on clique, ils passent dans l'id pour supprimer? Auparavant, je viens d'insérer ceci directement dans un paramètre de l'onclick = "DeleteComment (" l'identifiant dynamique ")". – Adam

0

Au lieu de cela :

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

Faites ceci:

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

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) 
}); 
1

Si vous apposez l'ID de l'objet vouloir 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> 
0

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

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; 
} 

Ne pas oublier de mettre en œuvre le côté serveur aussi pour la suppression des personnes qui n'ont pas Javascript activé!