Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][html] Zmiana id dla submita i onclick
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
AoW
Witam.

od kilku dni walcze z pewnym problemem. Chodzi o wysylke formularza przez Jquery. Skrypt działa bez problemów na podstronie gdzie wyśtępuje 1 formularz.
Jednak na innej podstronie, gdzie tych formularzy mam 15, pojawia mi sie mnóstwo problemów. Z większością udało mi się uporać, jednak nie rozumiem dlaczego jquery nie "łapie" mi zmienionego id buttona.

Uprościłem skrypt do granic możliwości, aby nie wklejać tutaj dziesiątek kodu i sedno problemu jest zachowane, mianowicie:

  1. <script>
  2. $(document).ready(function(){
  3.  
  4. $("a.link").click(function(e) {
  5. $(this).parent().find( "#btnSave" ).attr("id","btnSaveAkt");
  6. });
  7.  
  8. $('#btnSaveAkt').click(function() {
  9. alert('test');
  10. });
  11. });
  12. </script>


  1. <a href="#" class="link">Zmien</a>
  2.  
  3. <form onsubmit="return false" method="POST" name="addRunner" id="addRunner" class="1">
  4. <button id="btnSave" name="btnSave" type="submit">Wyslij list</button>
  5. </form>


Czyli tak. Mam formularz z buttonem o id="btnSave". Po kliknięciu w link Zmien, jquery poprawnie zmienia mi id buttonu z btnSave na btnSaveAkt. Jednak po tej zmianie nie działa funkcja $('#btnSaveAkt').click(function()... (zaznaczam, ze musze uzyc funkcji zmiany ID ze wzgledu na to, ze na swojej podstronie mam 15 takich formularzy).

Może ktoś podpowiedzieć dlaczego?

Pozdrawiam,
AoW

PS) Skrypt mozna przetestowac tutaj: http://mapaszczecina.vdl.pl/jquery/index.php
Turson
Nie łapie takiego id, bo nie ma go w DOM podczas załadowania strony.
http://stackoverflow.com/questions/1509094...dynamic-content
AoW
Ale DOM poprawnie jest przekształcany po kliknięciu w link ZMIEN, a funkcja click jest uruchamiana po przebudowaniu DOM (sądziłem zatem, że powinno "łapać").

...to tak na szybko. A teraz idę studiować link, który podałeś. Dziękuje.
Turson
DOM jest załadowany, a kolejny element jest dynamiczny stad klopot
AoW
Ok, działa.

Zmiana na
  1.  
  2. $('body').on('click', '#btnSaveAkt', function() {
  3. alert('test');
  4. });


Zaraz postaram się wdrożyć to do głównego projektu.

EDIT: Również działa. Pozdrawiam
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.