2009-02-19 15 views
0

Dans jquery, comment puis-je savoir quel objet a été cliqué?Comment savoir ce qui a été cliqué?

Existe-t-il un moyen d'alerter (...) le type d'étiquette? comme si c'était un <a href> ou un <img> etc?

+0

On dirait que vos échantillons balises HTML ont été filtrés loin. Étaient-ils simplement des exemples aléatoires, ou avaient-ils quelque chose d'important en eux? – user64075

Répondre

0

pourrait annonce un événement onclick pour alerter un attribut

<p id='pWoo' onclick='alert(this.id);'>Woo</p> 

Non spécifique à jquery.

+0

En pratique, vous ne devriez probablement pas intégrer JavaScript dans votre HTML ... il vaut mieux utiliser une approche JavaScript discrète (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript). – cdmckay

3

L'objet sur lequel vous avez cliqué est transmis au gestionnaire de clic sous la forme this. Vous pouvez trouver le type d'élément avec nodeName. Comme ceci:

function handle_click() { 
    var clicked_element = this; 
    alert(clicked_element.nodeName); 
} 
$("#mylink").click(handle_click); 
2

Magnar's answer est correct aussi longtemps que vous voulez savoir quel type d'élément traité l'événement (ce que vous avez joint l'événement). Si vous voulez savoir exactement quel élément a été cliqué, y compris les enfants de l'élément, vous avez besoin de la propriété event.target. En utilisant l'exemple de Magnar:

// show the type of the element that event handler was bound to 
function handle_click() { 
    var clicked_element = this; 
    alert(clicked_element.nodeName); 
} 

// show the type of the exact element that was clicked, which may be a child 
// of the bound element 
function handle_child_click(e) { 
    var clicked_element = e.target; 
    alert(clicked_element.nodeName); 
} 

// show the type of the element that matches "#myLink" 
$("#mylink").click(handle_click); 

// show the type of the element that matches "#myLink" or any of its children 
$("#mylink").click(handle_child_click); 
Questions connexes