Kilka rzeczy tu jest źle. Konkretnie:
dlaczego alert(this.id)
wyświetliło undefined
:
ponieważ funkcja prezentacja
nie została wywołana jako metoda (obj.prezentacja()
) i nie nastąpiło powiązanie this
z obiektem, zamiast tego this
jest referencją do obiektu window
, a widocznie window.id
nie zostało zadeklarowane.
Odnośnie do posta dzek69:
wybieranie tego elementu selektorem - ale to znowu oznacza przelecenie przez cały DOM
Nieprawda. Selektor, który odwołuje się do jakiegoś ID nie przeszukuje całego DOMu, nawet kawałka. Elementy, które mają ID są spamiętane w tablicy i odwołanie do nich jest szybkie (więc jQuery nie jest głupie i nie przeszukuje DOM bez potrzeby).
Skoro chcesz przypisać funkcję w jQuery na jakieś zdarzenie elementom i ta funkcja ma zależeć od ID tych elementów to najlepiej zrobić to tak:
jakasFunkcja(idElementu) {
// możemy wydobyć z tego stringa liczbę
// i coś z tą liczbą zrobić
}
$('.element').click(function (event) {
jakasFunkcja(event.target.id);
});