2009-02-19 7 views
0

В jquery, как я могу определить, какой объект был нажат?Как выяснить, что получил?

Есть ли способ предупредить (...) тип тега? например, если это был <a href> или <img> и т. д.?

+0

выглядит ваш HTML-теги образцов были отфильтрованы. Были ли они случайными примерами или имели в них что-то важное? – user64075

ответ

0

Может объявление событие OnClick, чтобы предупредить атрибут

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

не специфичны для JQuery.

+0

На практике вы, вероятно, не должны вставлять JavaScript в свой HTML ... вам лучше использовать ненавязчивый подход к JavaScript (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript). – cdmckay

3

Объект, который был нажат, передается в обработчик кликов как this. Вы можете узнать тип элемента с nodeName. Как это:

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

Magnar's answer правильно до тех пор, как вы хотите знать, какой тип элемента обрабатывается событие (то, что вы прикрепили событие). Если вы хотите точно знать, какой элемент был нажат, включая дочерние элементы, вам нужно свойство event.target. Используя пример Магнар в:

// 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); 
Смежные вопросы