Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] jQuery.noConflict();
Forum PHP.pl > Forum > Przedszkole
krystian1991x
Witam mam poważny problem ... Konkretnie posiadam 2 skrypty JS
- qscroller_js
- jquery-lightbox-0.5

Teraz przejdę do problemu co się konkretnie dzieje ;/ Gdy wrzucam na stronę odnośniki do skryptów js skryptu jquery-lightbox-0.5 i qscroller razem w taki sposób
  1. <script type="text/javascript" src="js/jquery.js"></script>
  2. <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
  3. <script type="text/javascript" src="mootools.js"></script>
  4. <script type="text/javascript" src="qscroller.js"></script>


to działa tylko skrypt pierwszy drugi niestety nie działa tak jak powinien bo zamiast otwierać dynamicznie w okienku nowym grafike to on otwiera nową strone z grafiką w zwykły sposób ...

gdy zrobię tak

  1. <script type="text/javascript" src="mootools.js"></script>
  2. <script type="text/javascript" src="qscroller.js"></script>
  3. <script type="text/javascript" src="js/jquery.js"></script>
  4. <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>


Nie działa skrypt pierwszy ale za to działa skrypt numer 2 ;(

w związku z tym że nie ma sensu tutaj wpisywać długich kilometrów kodu podam linki do bezpośredniego zassania smile.gif

jquery-lightbox-0.5 <--- POBIERZ
qscroller_js <--- POBIERZ


Dodam że próbowałem wielu wersji skryptu jquery-lightbox
elmozaur
proponuje zrob stronke testowa wystaw ja do pobrania to cos pokombinujemy.
Na pierwszy rzut oka powinno chodzic ok. Oczywiscie Doctype masz ustawione questionmark.gif?
kipero
http://api.jquery.com/jQuery.noConflict/
Warto się jednak zastanowić, czy potrzeba aż tyle JavaScriptu.
krystian1991x
kipero natrafiłem na coś podobnego niestety moja nikła znajomość angielskiego nie pozwoliła mi na dokładne zrozumienie co tam pisze a kopiowanie na pałe nie przyniosło rezultatów ;/

Dodam że używam smarty

Udało mi się zrobić aktualnie coś takiego

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <title>Aktualnosci</title>
  3. <link rel="stylesheet" type="text/css" href="../style-projects-jquery.css" />
  4.  
  5.  
  6.  
  7. <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" />
  8. <link href="shop.css" rel="stylesheet" type="text/css" />
  9.  
  10. <script type="text/javascript" src="mootools.js"></script>
  11. <script type="text/javascript" src="qscroller.js"></script>
  12. <script type="text/javascript" src="js/jquery.js"></script>
  13. <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
  14.  
  15.  
  16. <script type="text/javascript">
  17. {literal}
  18. var $j = jQuery.noConflict();
  19. $j(document).ready(function(){
  20. $j("#slider").easySlider();
  21. });
  22. {/literal}
  23. </script>
  24. </head>

Pomimo tego skrypt pierwszy działa za to skrypt drugi nadal nie ... teraz mi nie znika nic przynajmniej ale i tak nie działa ;[

ja sie poddaje próbowałem już chyba wszystkiego co tylko przyszło mi do głowy lub znalazłem gdzieś w necie 3 pełne strony wyników przeszukałem w google i nic żadne rozwiązanie nie działa ani zamienianie w skrypcie $ na $j itp totalne dno ;(
MWL
trochę się wysil i poszukaj w necie czy mootools też ma rozwiązania bezkonfliktowości..
poza tym lightbox którego używasz pewnie korzysta z $() a nie z bezkonfliktowości (wystarczy że to zmienisz - wyszukaj i zamień wszystkie)
krystian1991x
ok fajnie ale na co zamienić ? próbowałem zamieniać w bibliotece jquery zmienić wszystkie $ na jQuery ale i tak nie pomoglo ;< Błagam o pomoc ... od 4 jeszcze nie poszedłem spać cały czas szukam rozwiązania przewertowałem naprawdę sporo stron kilka musiałem tłumaczyć na ojczysty język po przez różne tranzlatory więc nie wmawiajcie mi ze sie nie staram ...;(
krispak
W mootools nic nie zmieniaj a jedynie na samej gorze przed funkcja lightboxa dodaj jQuery.noConflict(); a w funkcji zamien wszystkie $ na jQuery, czyli dla przykladu
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. jQuery.noConflict();
  3. jQuery(function() {
  4. // Use this example, or...
  5. jQuery('a[@rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
  6. // This, or...
  7. jQuery('#gallery a').lightBox(); // Select all links in object with gallery ID
  8. // This, or...
  9. jQuery('a.lightbox').lightBox(); // Select all links with lightbox class
  10. // This, or...
  11. jQuery('a').lightBox(); // Select all links in the page
  12. // ... The possibility are many. Use your creative or choose one in the examples above
  13. });
  14. </script>
[JAVASCRIPT] pobierz, plaintext

U mnie w cms pieknie smiga mootools i jquery razem smile.gif
Pozdrawiam
krystian1991x
Działa świetnie ale pojawił się kolejny problem ;(
  1. <div class="hide">
  2.  
  3. {foreach from=$result key=myId item=products name=products}
  4. {if $smarty.foreach.products.index%6 == 0}
  5. <div id="qs2" class="qslide2">
  6. {/if}
  7. <div style="margin-left: 15px;height: 185px; width: 279px; float: left;">
  8.  
  9. <div style="padding-left: 31px;padding-top: 11px;width: 376px; height: 140px; background-repeat: no-repeat; background-image: url('templates/images/49.png');"><table><tr><td><img src="templates/images/50.jpg"></td><td>
  10. <div id="gallery"><a href="photos/image2.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();"><img border="0" src="templates/images/46.png"></a></div>
  11. </td></tr></table></div>
  12.  
  13. <div style="padding-left: 22px; margin-bottom: 2px; font-family: Tahoma; font-size: 10px; color: #315b06;"><center><a href="" style="color: #FFFFFF;">{$products.link}</a> - {$products.title}</center></div>
  14. </div>
  15.  
  16. {if $smarty.foreach.products.index%6 == 5 || $smarty.foreach.products.last}
  17. </div>
  18.  
  19. {/if}
  20.  
  21.  
  22.  
  23. {/foreach}
  24. </div>


gdy ten fragment
  1. <div id="gallery"><a href="photos/image2.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();"><img border="0" src="templates/images/46.png"></a></div>
  2.  
jest dodany w pętle to skrypt i tak nie działa a gdy ustawie po za pętle to działa jak trzeba więc jeszcze problem mam tylko z tym ;/

Jeszcze zauważyłem jedną rzecz w jaki kolwiek link nie kliknę to otwiera się duża wersja obrazka ...
krispak
1. W petli powielasz diva
  1. <div id="gallery">

Zamiast $('#gallery a').lightBox(); uzyj rel="ligtbox" czyli
  1. <a href="photos/image2.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar." rel="lightbox">

2. Nie wklejami wszystkiego bezmyslnie
[JAVASCRIPT] pobierz, plaintext
  1. jQuery('a').lightBox(); // Select all links in the page
[JAVASCRIPT] pobierz, plaintext

ta linijka mowi dlaczego masz wszedzie obrazy.
Skroc to co podalem wczesniej do takiej postaci
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. jQuery.noConflict();
  3. jQuery(function() {
  4. // Use this example, or...
  5. jQuery('a[@rel*=lightbox]').lightBox();
  6. });
  7. </script>
[JAVASCRIPT] pobierz, plaintext

i bedzie ok
Pozdrawiam
krystian1991x
cholerka zrobiłem tak jak napisałeś ale nie działa teraz nie powiększa żadnych obrazków tongue.gif nawet tych które powinno haha.gif

tak się dzieje tylko gdy jest w pętli zauważyłem bo dałem po za nią i działało ... ;/
krispak
Pokaz kod jak zmieniles..
krystian1991x
  1. <!-- Ativando o jQuery lightBox plugin -->
  2. <script type="text/javascript">
  3. {literal}
  4. jQuery.noConflict();
  5. jQuery(function() {
  6. // Use this example, or...
  7. jQuery('a[@rel*=lightbox]').lightBox();
  8. });
  9. {/literal}
  10. </script>


  1. <div id="qscroller2" class="qscroller"></div>
  2. <div class="hide">
  3.  
  4. {foreach from=$result key=myId item=products name=products}
  5. {if $smarty.foreach.products.index%6 == 0}
  6. <div id="qs2" class="qslide2">
  7. {/if}
  8. <div style="margin-left: 15px;height: 185px; width: 279px; float: left;">
  9.  
  10. <div style="padding-left: 31px;padding-top: 11px;width: 376px; height: 140px; background-repeat: no-repeat; background-image: url('templates/images/49.png');">
  11. <table><tr><td><img src="templates/images/{$products.img_small}"></td><td>
  12. <a href="templates/images/{$products.img_small}" title="{$products.title}" rel="lightbox"><img border="0" src="templates/images/46.png"></a>
  13. </td></tr></table></div>
  14.  
  15. <div style="padding-left: 22px; margin-bottom: 2px; font-family: Tahoma; font-size: 10px; color: #315b06;"><center><a href="" style="color: #FFFFFF;" >{$products.link}</a> - {$products.title}</center></div>
  16. </div>
  17.  
  18. {if $smarty.foreach.products.index%6 == 5 || $smarty.foreach.products.last}
  19. </div>
  20.  
  21. {/if}
  22.  
  23.  
  24.  
  25. {/foreach}
  26. </div> Tak jak pisałem wyżej gdy jest po za foreach to wtedy działa bez zarzutu




Nikt nie pomoże ? offtopic.gif

nikt nie pomoże bracie mój gdy na tronie siedzi ....

Kluczem jest class="qslide2" tylko gdy tam wstawiam link z refem to tak się dzieje że nie działa. Próbowałem już innych skryptów ale każdy jaki znajduje jest oparty o jquery itp i wszystkie działają normalnie dopóki nie znajdą się w tym kluczowym divie o tej klasie o której wcześniej wspomniałem.
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.