Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Nie działa onclick po dodaniu nowego elementu
Warmix
post 12.03.2017, 21:03:33
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. var element = document.createElement('div');
  2. element.id = 'button_start';
  3. element.style.width = '40px';
  4. element.style.height = '40px';
  5. element.style.backgroundColor = '#CCCCCC';
  6. element.style.top = '5px';
  7. element.style.right = '5px';
  8. element.style.position= 'absolute';
  9. element.style.margin = '0 auto';
  10. element.innerHTML = '<div id="tekst" style="text-align: center;">B</div>';
  11.  
  12. var body = document.getElementsByTagName('div')[2];
  13. //body.appendChild(element);
  14. $(body).append(element);
  15.  
  16. $(document).on("click", "#button_start", function(){
  17. alert("test");
  18. });
[JAVASCRIPT] pobierz, plaintext


Dlaczego po kliknięciu na ten nowo utworzony element i dodany do strony nie wywołuje się onclik i nie wyrzuca alertu: "test"?
Go to the top of the page
+Quote Post
trueblue
post 12.03.2017, 21:09:41
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Być może dlatego, że pomieszałeś czysty JS oraz jQuery, a tego drugiego w ogóle nie dołączasz do strony.


--------------------
Go to the top of the page
+Quote Post
Warmix
post 12.03.2017, 21:13:56
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Nie można tak wymieszać JS i JQuery? Chciałem stworzyć i dodać element za pomocą JS, a samo kliknięcie obsłużyć JQuery sad.gif Zdecydować się na jedno czy mogę tak zrobić?

Co masz na myśli, że nie dołączyłem tego drugiego w ogóle do strony?

Przerobiłem na samo jQuery, niestety dalej nie działa sad.gif
[JAVASCRIPT] pobierz, plaintext
  1. var body = $("div")[2];
  2. $(body).append("<div class='teeen' id='button_start' style='width: 40px; height: 40px; background-Color: #CCCCCC; top: px; right: 5px, position: absolute; margin: 0 auto'><div id='tekst' style='text-align: center;'>B</div></div>");
  3.  
  4. $(document).on("click", "#button_start", function(){
  5. alert("test");
  6. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Warmix 12.03.2017, 21:34:10
Go to the top of the page
+Quote Post
trueblue
post 12.03.2017, 21:33:25
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Możesz mieszać, ale warto się zdecydować na jedną opcję, dla porządku.
Masz dołączoną bibliotekę jQuery?
Czy na stronie istnieją minimum 3 divy?
Sprawdź konsolę przeglądarki.


--------------------
Go to the top of the page
+Quote Post
Warmix
post 12.03.2017, 21:37:13
Post #5





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 12.03.2017, 21:33:25 ) *
Możesz mieszać, ale warto się zdecydować na jedną opcję, dla porządku.
Masz dołączoną bibliotekę jQuery?
Czy na stronie istnieją minimum 3 divy?
Sprawdź konsolę przeglądarki.


Wszystko jest w porządku. Bo ten element dodaje mi się na stronę, problem jest tylko przy tym, że gdy kliknę na niego, to nic się nie dzieje, a powinien wyskoczyć alert. Problemem jest na pewno
Cytat
var body = $("div")[2]
bo jeżeli dam
Cytat
$("body").append(
to fakt, dodaje mi się element nie w tym miejscu co potrzeba, ale wtedy alert działa. Co może być powodem błędu?
Go to the top of the page
+Quote Post
trueblue
post 12.03.2017, 21:39:50
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Sprawdziłeś punkt 3?


--------------------
Go to the top of the page
+Quote Post
Warmix
post 12.03.2017, 21:42:28
Post #7





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Istnieją, na pewno. Zmiana np. z "[2]" na "[1]" albo "[3]" zmienia mi tylko położenie, ale nie istotne co tam dam, niestety wciąż nie działa alert sad.gif

Ten post edytował Warmix 12.03.2017, 21:42:54
Go to the top of the page
+Quote Post
trueblue
post 12.03.2017, 21:44:48
Post #8





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Sprawdź dokumentacją funkcji "on" i wersję jQuery jaką dołączasz.
Sprawdź konsolę przeglądarki.


--------------------
Go to the top of the page
+Quote Post
Warmix
post 12.03.2017, 21:49:10
Post #9





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Operuję w Tampermonkey w Google chrome. Ma to jakieś znaczenie w związku z tym, że nie chce to działać?
Go to the top of the page
+Quote Post
trueblue
post 12.03.2017, 22:01:04
Post #10





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W Google Chrome konsola jest pod F12->Console.


--------------------
Go to the top of the page
+Quote Post
Warmix
post 12.03.2017, 22:08:19
Post #11





Grupa: Zarejestrowani
Postów: 173
Pomógł: 0
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Znalazłem błąd. Problemem wydaje mi się być to, że append dodaje przed danego diva, wprawdzie mój dodany jest widoczny, ale mam wrażenie, że przez to, że ten drugi go przykrywa, to one click przez to,że wyszukuje w całym 'document' to łapie tego diva za nim i nie wyłapuje click dla tego dodanego diva. Jak mogę to rozwiązać?
Go to the top of the page
+Quote Post
borabora
post 12.03.2017, 23:00:13
Post #12





Grupa: Zarejestrowani
Postów: 116
Pomógł: 33
Dołączył: 8.09.2014

Ostrzeżenie: (0%)
-----


masz i testuj:
https://jsfiddle.net/7y0pxvb8/
po kliknieciu w ten dodany div pokazuje się alert. Byćmoże z resztą kodu na stronie coś namieszałeś
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 13:28