2012-05-05 11 views
6

Pracuję nad szablonem dla Joomla 2.5.x, używając Twitter Bootstrap. Chcę również użyć wtyczki Bootstrap Carousel dla tego szablonu.Twitter Bootstrap Karuzela za pomocą Joomla i jej Mootools

Mam problem, gdy karuzela jest używana z implementacją Mootools Joomla. Styl elementu karuzeli zmienia się z ujemnym marginesem, przez co staje się niewidoczny dla użytkownika. Aby pokazać dokładnie, co się dzieje, przygotowałem dla ciebie jsfiddle http://jsfiddle.net/U2pHH/11/.

Karuzela powoduje, że co drugi obraz nie jest widoczny dla użytkownika z powodu atrybutu stylu zmiany karuzeli, ale użytkownik powinien zobaczyć każdy slajd.

Zajrzałem już do kodu źródłowego wtyczki Carousel Plugin i Mootools JS, ale niestety nie mogłem znaleźć przyczyny problemu. Myślałem, że może to jakiś problem z nazywaniem funkcji/klas między jQuery i Mootools, ale nie mogłem znaleźć tam żadnego problemu.

Mam nadzieję, że możesz mi pomóc tutaj.

Edycja: Odkryłem, że ma to coś wspólnego z klasą Fx.Slide z mootools-more.js, usunięcie klasy z kodu źródłowego rozwiązało problem. Ale to wciąż nie jest rozwiązanie, każda pomoc jest nadal bardzo doceniana.

+0

@Andres Ilich Dzięki ustalania tag – mjainta

+0

to działa dobrze na mojej przeglądarce (tylko próbował jsfiddle link): Chrome 18 Mac OS widzę trzy różne obrazy, jeden normalny, jeden z tekstem z zieloną obwódką i jedną większą. – ajimix

+0

Tak, twoje prawo, dzięki. To jest moje złe, zrobiłem obejście z komentowaniem klasy Fx.Slide od Mootools tam i zapomniałem zmienić link pliku JS. Usunąłem komentarze za pomocą tego http://jsfiddle.net/U2pHH/11/ – mjainta

Odpowiedz

0

Problem polega na tym, że Mootools więcej jest w konflikcie z twitter bootstrap, dlatego jego działanie jest dziwne w karuzeli. Proponuję użyć tylko jQuery lub po prostu Mootools. Istnieje implementacja Mootools do bootstrap: https://github.com/anutron/mootools-bootstrap

+0

Dziękuję za odpowiedź. Widziałem również bootstrap dla Mootools, ale nie widziałem jeszcze żadnej implementacji dla równoważnej wtyczki Carousel z bootstrapu dla jQuery. Może powinienem pozostać przy obejściu i czekać, aż będzie implementacja lub uczestniczyć i pomóc w jej utworzeniu. – mjainta

0

Mając ten sam problem. Używam wtyczki o nazwie JB Library (http://www.joomlabamboo.com/joomla-extensions/jb-library-plugin-a-free-joomla-jquery-plugin), która ma opcje usuwania Mootools i/lub Mootools More z poziomu administratora. Po wyłączeniu Mootools Problem z karuzelą jest "naprawiony". Może być łatwiejsze rozwiązanie niż komentowanie rzeczy w odniesieniu do aktualizacji. Chyba że potrzebujesz mootools-more.js do innych rzeczy na stronie oczywiście.

Mam nadzieję, że wkrótce pojawi się lepsze rozwiązanie.

8

Oto dylemat specyficzne dla Joomla i mootools więcej,

dodać ten kod po wywołaniu JQ, to może być w żadnym js plik

dodać

if (typeof jQuery != 'undefined') { 
(function($) { 
     $(document).ready(function(){ 
     $('.carousel').each(function(index, element) { 
       $(this)[index].slide = null; 
       }); 
     }); 
})(jQuery); 
} 
+1

Cóż, to JEST DOKŁADNA ODPOWIEDŹ NA PYTANIE. Rozwiązuje problem. Wielkie dzięki, Benn !! – simon

+0

Zgadzam się - działa to doskonale !!! Nie musisz się martwić wyłączaniem Mootools (co powodowało mi bóle głowy z innymi modułami, nawet gdy wyłączałem je z rozszerzeniem Joomla) - po prostu dodaj go po zwykłym kodzie gotowym do dokumentu. –

+1

Otrzymuję ten TypeError: $ (...) [indeks] jest niezdefiniowany $ (this) [index] .slide = null; Drugi kod autorstwa @semyon działał lepiej. – thednp

5

Another realizacji tego samego rzeczą, którą dostarczył Benn jest

if (typeof jQuery != 'undefined' && typeof MooTools != 'undefined') { 
    Element.implement({ 
     slide: function(how, mode){ 
      return this; 
     } 
    }); 
} 

Co w końcu mi się udało - I utworzone niestandardoweMootools Więcej kompilacja bezFx.Przesuń

+0

To zadziałało dla mnie, dziękuję bardzo. Z poprzednimi odpowiedziami, które otrzymywałem: TypeError: $ (...) [index] is undefined $ (this) [index] .slide = null; – thednp

+0

Thx! Działa lepiej niż inne. – StasGrin

0
(function($) 
{ 
    $(document).ready(function(){ 
     var bootstrapLoaded = (typeof $().carousel == 'function'); 
     var mootoolsLoaded = (typeof MooTools != 'undefined'); 
     if (bootstrapLoaded && mootoolsLoaded) { 
      Element.implement({ 
       hide: function() { 
        return this; 
       }, 
       show: function (v) { 
        return this; 
       }, 
       slide: function (v) { 
        return this; 
       } 
      }); 
     } 
    }); 
})(jQuery); 
+3

proszę wyjaśnić, co robi ten kod i jak rozwiązuje problem użytkownika. –

+3

Podczas gdy ten kod może odpowiedzieć na pytanie, podanie dodatkowego kontekstu dotyczącego tego, w jaki sposób i/lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi. –

Powiązane problemy