czesu
https://jsfiddle.net/m6b9z2bv/
Mam diva klasy article-text w którym siedzi sobie artykuł. Artykuł jak to artykuł zawiera obrazki. Chciałbym, by po kliknięciu na jakiś obrazek wyskoczył mi lightbox. Mam go już napisanego i sobie ładnie śmiga. Problem w tym, że wywołanie go taką komendą $('img').click(function(event){...}); uruchamia go po kliknięciu na jakikolwiek obrazek na stronie. Skoro chcę, by komenda wywoływała się tylko dla obrazków z diva article-text to powinno wystarczyć wskazanie na jego obrazkowe dzieciaczki czyż nie? No więc dlaczego mi to nie działa?

$('.article-text').children('img').click(function(event){...});
#webdev #javascript #jquery
  • Najlepsze
  • Wszystkie komentarze
N.....y
N.....y
@czesu: $('.article-text img').on('click', function() {}) ;
czesu
czesu Autor
1
@NiktNieTroszczy: O, nie pomyślałem, że można tak wybierać elementy. Dalej jednak nie wiem dlaczego moja wersja nie działała, metoda click nie współgra w ogóle z children?
N.....y
N.....y
@czesu: powinno działać nawet twoją metodą, po całkowitym załadowaniu strony wklej swój skrypt do konsoli i zobacz czy wtedy zadziała
czesu
czesu Autor
0
@NiktNieTroszczy: Normalnie plik ze skryptem odpala maina w którym siedzą te funkcje dopiero po załadowaniu strony więc to nie to.
N.....y
N.....y
@czesu: no to masz literówke gdzieś, w klasie może
Chanandler
@czesu:

1. JS ładuj przed , dzięki temu parsowanie DOMu nie jest blokowane przez niezaładowane skrypty
2. Używaj DOMReady $(function() { // kod });
czesu
czesu Autor
0
@NiktNieTroszczy: Jest jak na jsfiddlu. No nic, po prostu zapamiętam sobie, żeby korzystać z twojej wersji, z resztą nie ma powodu by niepotrzebnie wywoływać kolejną metodę a próbowałem tego tylko dlatego, że nie wiedziałem że można korzystać z kilku selektorów na raz.
@Chanandler: tak robię
Chanandler
@czesu: a po co tam masz odnośnik? No nie dziwne, że przenosi do linku zamiast uruchamiać lightbox. Użyj zdarzenia na odnośniku i wtedy event.preventDefault() zadziała, albo go wywal