$('p', 'div.playlist').click(function(e){
var val = $(this).attr('songid');
alert(val);
})
Поскольку вы привязываетесь к элементам P
, вам не нужно проверять, какой элемент this
... это всегда элемент p
.Ваш код пытался определить, нажал ли пользователь элемент SPAN
или элемент P
, а приведенный выше код просто позволяет пузырю клика подойти к элементу P
и обрабатывает его там.
Здесьэто демо: http://jsfiddle.net/PAZTs/
Если вы хотите запретить клики по элементам SPAN
, вы можете использовать event.stopPropagation()
в обработчике событий для этих элементов:
$('span', 'div.playlist').click(function(e){
e.stopPropagation();
});
Здесьэто демо: http://jsfiddle.net/PAZTs/1/
Также примечание: внутри вашего обработчика событий click
вы объявляете переменную val
без использования ключевых слов var
(var val;
), которые ставят val
переменная в глобальном пространстве, которая не нужна.