Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Jquery odnosi się do nieistniejącego elementu
Forum PHP.pl > Forum > Przedszkole
neo1986kk
  1. (function($){
  2. $.fn.aaa=function(){ alert('dziala');}
  3. })(jQuery)
  4.  
  5. $(document).ready(function(){
  6. $('#nieMaTakiegoElementuWDOM').aaa();
  7. });


Czy takie coś powinno zadziałać, czy ja już za długo przed kompem siedzę, wydaje mi się że powinien pokazać błąd, iż takiego elemetu nie ma, a on sobie beztrosko pokazuje alert.
trueblue
W wewnątrz funkcji nie dostajesz elementów wybranych przez selektor, ale funkcja wykonuje się, a co za tym idzie alert.

Zmień trochę ciało funkcji:
  1. $.fn.aaa=function(){this.each(function(){console.log(this)});alert('dziala');}

i porównaj wynik w konsoli na znalezionych i nieznalezionych elementach.
neo1986kk
no dobra to, że wykonuje funkcję to jeszcze spoko, mogę sprawdzić rzeczywiście czy taki element istnieje, ale mam przycisk, po którym powinien się pojawić ten alert i po kliknięciu przycisku funkcja się nie wykonuje

  1.  
  2. (function($){
  3. $.fn.aaa=function(){ alert('dziala'); $(this).click(function(){ alert('no to dziala'); }); }
  4. })(jQuery)
  5.  
  6. $(document).ready(function(){
  7. $('#pokazalert').aaa();
  8. });
  9.  
  10.  



i po załadowaniu strony pokazuje alert (aaa) ale po kliknięciu na przycisk o ID pokazalert już nie pokazuje nic
trueblue
Powinieneś przeiterować przez tablicę elementów zwróconych dzięki selektorowi.
https://jsfiddle.net/ztsa6xu1/
neo1986kk
To nie w tym rzecz, któryś ze skryptów mi musi blokować, bo żaden przycisk na stronie nie działa, poza tym tutaj selektorem jest ID elementu, a w DOMie powinien być tylko jeden element o takim ID.
trueblue
  1. (function($){
  2. $.fn.aaa=function(){ alert('dziala'); this.click(function(){ alert('no to dziala'); }); }
  3. })(jQuery)

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.