Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Konflikt biblioteki jQuery z byslidemenu-2.1.3.js ...
Elber
post
Post #1





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Witam, mam problem...mam slider w jQuery który działa ok i menu (byslidemenu) po lewej które działa tylko w momencie gdy załaduje w <script> biblioteki jQuery a jak jej nie załaduje to nie działa slider ... jak rozwiązać ten konflikt ? Tutaj link http://www.techos.pl/smolin/oferta.html

Konsola błędów pokazuje:
Uncaught TypeError: Object [object Object] has no method 'getElements' w http://www.techos.pl/smolin/js/byslidemenu-2.1.3.js w 37 linii


Cytat
33: initialize: function(options) {
34: this.setOptions(options);
35:
36: var menu = $(this.options.container);
37: this.elements = menu.getElements(this.options.selector);
38: var elements_count = this.elements.length;


Ten post edytował Elber 24.01.2012, 20:28:44


--------------------
GG: 564555
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Necsord
post
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Troche lektury: http://api.jquery.com/jQuery.noConflict/
  1. <script type="text/javascript">
  2. var j = jQuery.noConflict();
  3. j(document).ready(function(){
  4. j('.slider').carousel({});
  5. });
  6. </script>


Drugim problemem u ciebie jest to, że w js/byslidemenu_demo.js masz:

  1. window.addEvent('load', function(){
  2.  
  3. /* Using skip class */
  4. new BySlideMenu({
  5. 'container' : 'byslidemenu_skip',
  6. 'vertical' : true,
  7. 'compressSize' : 20,
  8. 'defaultClass' : 'default'
  9. });
  10. });


Obiekt o id "byslidemenu_skip" nie istnieje, z tego co się domyślam chciałeś tam wstawić "category", czyli podmień "byslidemenu_skip" na "category".

Ten post edytował Necsord 24.01.2012, 21:44:32
Go to the top of the page
+Quote Post
Elber
post
Post #3





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Czytałem o jQuery.noConflict i próbowałem wstawić ale robiłem to źle ... wstawiłem ale teraz wywala error do linijki 36:

Property '$' of object [object DOMWindow] is not a function

36: var menu = $(this.options.container);

Aj źle wstawiłem...teraz wstawiłem dobrze tak jak podałeś:

<script type="text/javascript">
var j = jQuery.noConflict();
j(document).ready(function(){
j('.slider').carousel({});
});
</script>

ale nie działa slider, za to menu działa smile.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
Necsord
post
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


jQuery ma teraz zajęty namespace "j" czyli poprawnie jest:
  1. j(function(){
  2. j('.slider li').each(function() {
  3. var $t = j(this);
  4. var boxik1Width = $t.find('.boxik:eq(0)').width();
  5. var boxik2Width = $t.find('.boxik:eq(1)').width();
  6. var singleMargin = parseInt((900 - boxik1Width - boxik2Width) / 4);
  7. $t.find('.boxik').css('margin','0 '+singleMargin+'px');
  8. });
  9. });


w skrypcie od slider'a. ( Zamiast "$", "j". ) Jako ciekawostke zamiast zamiany wszystkich miejsc z $ na j można zrobić coś takiego:

  1. (function($){
  2. $('.slider li').each(function() {
  3. var $t = $(this);
  4. var boxik1Width = $t.find('.boxik:eq(0)').width();
  5. var boxik2Width = $t.find('.boxik:eq(1)').width();
  6. var singleMargin = parseInt((900 - boxik1Width - boxik2Width) / 4);
  7. $t.find('.boxik').css('margin','0 '+singleMargin+'px');
  8. });
  9. })(j);


Czyli obszar funkcji posiada zmienną lokalną "$", do której przekazujesz "j" czyli jQuery.

PS. noConflict() stosujesz tylko raz na poczatku.

Ten post edytował Necsord 24.01.2012, 22:08:13
Go to the top of the page
+Quote Post
Elber
post
Post #5





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


BAJER MONACHIUM biggrin.gif:D Bardzo CI dziękuję za cierpliwość i nieocenioną pomooc wink.gif

Aczkolwiek 2gi przykład coś nie zadziałał smile.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 14:14