Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] dwa skrypty jQuery na stronie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
trucksweb
kiedys juz pisalem o tym problemie, udalo sie go rozwiazac usuwajac jeden skrypt. Teraz niestety nie moge i musze uzywac dwoch skryptow z jQuery.
Problem polega na tym, ze jesli opa skrypty a raczej ich wywolanie jest opublikowane to dziala jedynie ten ostatni.
W dokumentacji pisze ze mozna uzyc noconflict..
jednak to nie pomoaga.

Oto skrypty wywolujace biblioteki: juz z zastosowaniem noConflict
1
  1. <script type="text/javascript">
  2. var $j = jQuery.noConflict();
  3. $j(window).bind("load", function() {
  4. $j("div#slider1").codaSlider()
  5. // jQuery("div#slider2").codaSlider()
  6. // etc, etc. Beware of cross-linking difficulties if using multiple sliders on one page.
  7. });
  8. </script>


2
  1. <script type="text/javascript">
  2. var $s = jQuery.noConflict();
  3. $s(document).ready(
  4. function(){
  5. $s('ul#<?php echo $uniqueid; ?>').innerfade({
  6. speed: <?php echo $speed; ?>,
  7. timeout: <?php echo $timeout; ?>,
  8. type: '<?php echo $display; ?>',
  9. containerheight: '<?php echo $height; ?>px'
  10. });
  11. });


czy ktos moze powiedziec jak to rozwiazac ?

oba skrypty uzywaja innych bilbiotek z innych plikow
devnul
a nie mogą używać jednej? nie bardzo rozumiem co chcesz osiągnąć ale obie te czynności można wykonać używając tylko jednej biblioteki jQuery, a rozwiązanie podane przez Ciebie nie działa i działać nie będzie. noConflict jest po to żeby zarejestrować bibliotekę jQuery w innej "przestrzeni" niż domyślna w wypadku gdyby ta była zajęta. Rozwiązanie to nie służy do klonowania obiektów jQuery. Z tego co się orientuję to nie bardzo jest to możliwe ze względu na budowę samej biblioteki. Powiedz może czemu próbujesz używać dwóch bibliotek a nie jednej to może coś zaradzimy

//edit: zdaje mi się że próbujesz używać gotowców z ich domyślnymi konfiguracjami. nie możesz zwyczajnie załadować jquery a następnie potrzebnych Ci bibliotek (samych - bez kolejnego bezsensownego ładowania jquery po raz enty)?
lord_t
Cytat
Please ensure you have no code in your <body> onload event handler, otherwise $(document).ready() may not fire.

Źródło: http://docs.jquery.com/Events/ready#fn

A jeśli robisz bind dla load to prawdopodobnie nadpisujesz onload w body i dlatego nie działa. Próbowałeś zrobić tak?:

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $("div#slider1").codaSlider();
  4. // jQuery("div#slider2").codaSlider()
  5. });
  6.  
  7. $(document).ready(
  8. function(){
  9. $('ul#<?php echo $uniqueid; ?>').innerfade({
  10. speed: <?php echo $speed; ?>,
  11. timeout: <?php echo $timeout; ?>,
  12. type: '<?php echo $display; ?>',
  13. containerheight: '<?php echo $height; ?>px'
  14. });
  15. });
devnul
@lord_t: a gdzie Ty tam widzisz <body onload w jego kodzie?
lord_t
A co może robić wg Ciebie bind("load" ...? Bo ja podejrzewam, że właśnie ustawia onload dla body. W jQuery pomija się prefix on, a że onload występuje tylko dla body, to doszedłem do powyższych wniosków:)
trucksweb
nie znam sie na js wiec mam problem ;]
uzywam gotowcow ze strony: http://www.ajaxdaddy.com/

Glider i SlideShow

zaden sposob nie dziala, albo dziala jedno albo drugie sciana.gif
devnul
[quotePlease ensure you have no code in your <body> onload event handler, otherwise $(document).ready() may not fire.[/quote]
w tym fragmencie chodzi o kod wstawiony statycznie do html'a a nie zdarzenie ustawione z poziomu samego jQuery, bo ono radzi sobie z podpinaniem wielu akcji pod jedno zdarzenie.

//edit:
@trucksweb:
pokaż kod załączanych bibliotek z head
trucksweb
najlepiej to podam link do strony:
http://nieruchomosci.bmgpolska.pl/

-jquery uzywam to rotacji zdjec w topie i do mechanizmu zakladek

//strona oparta na Joomli wiec to co widac to sa moduly, ktore includuja swoje pliki dlatego kod wyglada tak jak wyglada dry.gif
devnul
na czym strona by nie była oparta to masz kupe błędów (2 x sekcja head)

wywal z kodu jedno wystąpienie
Kod
<script src="http://nieruchomosci.bmgpolska.pl/modules/lib/jquery-1.2.1.pack.js" type="text/javascript"></script>
tak żeby została tylko jedna deklaracja, poza tym wszystkie załączenia skryptów <script src=costam></script> przenieś do sekacji head (i zklikwiduj drugą sekcje), pamiętając aby załączać biblioteke jquery w pierwszej kolejności. następnie zrezygnuj z noconflict w jquery na rzecz normalnego używania biblioteki i będzie działać
trucksweb
albo ja nie umiem wkleic kodu albo cos jest spierdzielone, bo nie dziala.
Jak wkleje wszystko do pliku index.php templatki i dam <script> w glowym headzie a tamte smieci usune to nic nie dziala sciana.gif
lord_t
Użyj firebuga to Ci pokaże co jest nie tak:)
trucksweb
dostal.gif ale slepy jestem, wszystko bylo ok,
tylko jak skopiowalem kody z plikow modulow do index.php zapomnialem zadeklarowac wartosci zmiennych, ktorych wymaga dany modul. Bez nich nie wiem czemu ale nie dzialaly oba. Jak uzupelnilem wartosci zmiennych oba moduly ozyly laugh.gif

dzieki za pomoc.
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.