Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery 1.4.2] Bug czy błąd dla live
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
matrik
  1. <!DOCTYPE html>
  2. p { background:yellow; font-weight:bold; cursor:pointer;
  3. padding:5px; }
  4. p.over { background: #ccc; }
  5. span { color:red; }
  6. </style>
  7. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  8. </head>
  9. <p>Click me!</p>
  10.  
  11. <span></span>
  12. (function($){
  13. $.fn.dialogwo = function(){
  14. this.each(function(){
  15. $(this).live("click",function(){
  16.  
  17. $(this).after("<p>Another paragraph!</p>");
  18. return false;
  19. });
  20. });
  21. }
  22. })(jQuery);
  23. $(document).ready(function(){
  24. $("p").dialogwo();
  25. });
  26.  
  27. </body>
  28. </html>


Czy to bug czy błąd?
devnul
błąd - ale Twój powinno być coś w stylu

[JAVASCRIPT] pobierz, plaintext
  1. (function($){
  2. $.fn.dialogwo = function(){
  3.  
  4. $(this).live("click",function(){
  5.  
  6. $(this).after("<p>Another paragraph!</p>");
  7. return false;
  8. });
  9. }
  10. })(jQuery);
  11. $(document).ready(function(){
  12. $("p").dialogwo();
  13. });
[JAVASCRIPT] pobierz, plaintext

Cytat
Czy to bug czy błąd?
czym się różni jedno od drugiego?
matrik
Hmm, nie wiem dlaczego nie chce działać to live...
W tym przypadku
Pierwszy link na czarnym tle działa normalnie, lecz po załadowaniu treści przez ajax do okienka z białym tłem, nie działa link "Otwórz link".
Przeglądarka nie powinna przechodzić na ten adres, lecz powinno się zmienić treść okienka.
devnul
jest jakiś specjalny powód dla którego próbujesz zrobić to co próbujesz zrobić jako rozszerzenie jquery a nie jako kod korzystający z jquery?
matrik
No jest specjalny powód, dla którego chcę żeby mi to działało tak jak chcę smile.gif
Ale, nikt nie potrafi z tego co widzę :/
A przecież live powinno działać zawsze...
devnul
i działa zawsze jak jest dobrze użyte. W pierwszym kodzie który tu dzisiaj wkleiłeś próbowałeś użyć live bezpośrednio na pojedynczych elementach DOM i dziwiłeś się że nie działa. Sprawdzałeś kod który wkleiłem? Co prawda jest tam drobny błąd ale jakbyś pomyślał to byś go znalazł. Zapoznaj się najpierw z tym a później bierz się za kombinowanie.
poprawiony kod który powinien działać
[JAVASCRIPT] pobierz, plaintext
  1. (function($){
  2. $.fn.dialogwo = function(){
  3.  
  4. this.live("click",function(){
  5.  
  6. $(this).after("<p>Another paragraph!</p>");
  7. return false;
  8. });
  9. }
  10. })(jQuery);
  11. $(document).ready(function(){
  12. $("p").dialogwo();
  13. });
[JAVASCRIPT] pobierz, plaintext

matrik
chyba nie patrzyłeś na kod źródłowy strony demo...
co do pisania pluginów to już to czytałem

w tym przypadku $(this) a this nie robi różnicy w działaniu haha.gif, sprawdzałem, nie wiem czego tak się dzieje

Jak do tej pory sobie poradziłem, działa biblioteka livequery, stabilna dla jQuery 1.4.1 smile.gif
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.