Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Zdarzenie on click działa "po"
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
orideith
Witam Was,
mam taki działający kod
  1. <div class="control-group">
  2. <div class="controls">
  3. <div class="input">
  4. <div class="btn-group" data-toggle="buttons-checkbox">
  5. <button class="btn" value="1">C</button>
  6. <button class="btn" value="2">M</button>
  7. </div>
  8. </div>
  9. </div>
  10. </div>
  11. $(function() {
  12. return $('body').on('click', '[data-toggle=buttons-checkbox]', function() {
  13. var id;
  14. id = $(this).data(id);
  15. return $(this).find('.btn').each(function() {
  16. var val;
  17. if ($(this).hasClass('active')) {
  18. val = $(this).val();
  19. } else {
  20. val = 0;
  21. }
  22. return console.log(val);
  23. });
  24. });
  25. });
  26.  


demo: http://jsfiddle.net/naUtc/

jak nacisnę C to konsola mi daje 1 0 jak M to konsola daje mi 1 2 ogólnie działa ok.
Teraz chciałem na swojej www tak zrobić, nie mam jej jeszcze on-line dlatego powstał ten wątek.
Kod na www też działa ale jak nacisnę C to mam 0 0 na konsoli a jak przycisk "odcisne" to dopiero pojawia się 1 0, dopiero jak klasa active zostaje zdjęda z przycisku.
Co może być tego przyczyną, kiedyś tak miałem gdzieś indziej i znalazłem rozwiazanie ale teraz nie mogę sobie w żaden sposób przypomnieć.

Dodam, że na stronie poza jquery, bootstrap.min.js i tego skryptu nic nie ma z js

Będę wdzięczny za pomoc.

Pozdrawiam

zegarek84
pokaż kolejność załączania skryptów na swojej stronie - musisz przekopiować fragment strony html ze skryptami choćby bez reszty - nie masz identycznie jak na podanym przykładzie... w pierw myślałem, że bootstrap późno się inicjiuje, zerknąłem na opcję i js masz po "onload", zmieniłem na "no wrap in head" i dalej działa i jest ten skrypt załączany jako ostatni, musisz ten skrypt załączać wcześniej bądź korzystać nie poprawnie z innych bibliotek typu "require" gdzie skrypty dołączane dynamicznie są zazwyczaj tak jakby z atrybutem asynchronicznym więc mogą się wczytać wcześniej...

skrót $(funkcja) odpala się po "domReady", a nie tak jak wybrałeś na jsfiddle po "onLoad" (czyli później ;p)... dawno też nie pisałem w JS i choć wiedziałem, że zdarzenia w jQ przepisali pod .on to nie wiedziałem, że sprawdzają zwróconą wartość i jeśli funkcja to ją odpalają ;p trochu dziwnie i śmiesznie to wygląda ;p
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.