2016-04-21 3 views
0

Как изменить поведение метода на основе того, какой узел был нажат? Я хочу изменить атрибут datavalue на 0, если был нажат $('.parent').Как отличить событие click на основе щелчка узла DOM?

$('.parent').on('click', function (event) { 
    this.someClickFunction(event); 
}); 

$('.child').on('click', function (event) { 
    this.someClickFunction(event); 
}); 

someClickFunction: function (event) { 
    //TODO: If $('.parent') was clicked, change to 0 
    $('.holder').data('type', 1); 
} 
+0

Если ($ ('Родитель') == event.target) ?? –

ответ

1

Вы можете использовать .is(selector), чтобы проверить, какой элемент был нажат.

Проверьте текущий согласованный набор элементов на объект селектора, элемента или jQuery и верните значение true, если хотя бы один из этих элементов соответствует данным аргументам.

Для простоты я передал ссылку функции на обработчик кликов.

$('.parent').on('click', this.someClickFunction); 
$('.child').on('click', this.someClickFunction); 


someClickFunction: function (event) { 
    $('.holder').data('type', $(event.target).is('.parent') ? 1: 0);   
} 

Хороший прочитать Difference between $(this) and event.target?

Смежные вопросы