2009-12-17 5 views
1

je vois qu'il ya cette syntaxe pour détecter tout cliquez sur le boutoncomment capturer l'événement clic d'un bouton généré dynamiquement jquery

<script type="text/javascript"> 
     $(document).ready(function() { 
     $(":button").click(function(event) { 
       alert("Thanks for visiting!" + this.value); 
      }); 
     }); 
    </script> 

mais si je veux détecter uniquement un bouton particulier sur la page?

EDIT: cela semble bien pour les boutons qui sont configurés au début mais dans mon cas, je les crée dynamiquement avec jquery. il semble que ces boutons ne touchent pas ce code. toutes les idées

Répondre

5

Vous devrez lier « clic » à la fonction/l'événement jQuery « live » pour que cela fonctionne. Je recommande également d'utiliser une classe CSS spéciale ou un identifiant sur le bouton généré dynamiquement. Voici la description de la vie même de jQuery.com.

Lorsque vous liez un événement « en direct » il se lient à tous les éléments actuels et futurs sur la page (en utilisant l'événement délégation). Par exemple si vous avez lié un clic direct à tous les éléments "li" sur la page a ensuite ajouté un autre li à un plus tard - cet événement de clic continuerait à fonctionner pour le nouvel élément (ce n'est pas le cas avec bind lequel doit être re-lié sur tous les nouveaux éléments).

<script type="text/javascript"> 
    $(document).ready(function() { 
     //$(":button") would select all buttons 
     //.className would work on an button with a CSS Class assignment of ClassName 
     //Below shows how to do it on a specific ID 
     $("#MyNewButtonID").live("click", function(event) { 
     alert("Thanks for visiting!" + this.value); 
     }); 
    }); 
</script> 
+0

A partir de la version 1.7, la vie est dépréciée, plus tard supprimée. http://api.jquery.com/category/deprecated/deprecated-1.7/ –

0

Donnez l'entrée une carte d'identité ou de la classe puis utilisez $(".class:button") ou $("#id:button")

+1

Dans le premier cas, il peut y avoir plus d'un bouton avec la classe. Dans ce dernier cas, le bouton: est redondant car l'ID identifie de manière unique un élément. – Rich

+0

cela seulement partiellement travaillé. J'ai mis à jour la question pour être plus explicite – leora

0

utiliser le sélecteur correct pour identifier les boutons que vous voulez (http://docs.jquery.com/Selectors) puis ajouter la fonctionnalité de clic.

$ («: bouton») sélectionne TOUS les boutons. Vous voulez limiter cela à l'ensemble spécifique dont vous avez besoin

Questions connexes