Kwi
10
2013

Co zrobić gdy slider jQuery przestał działać?

Właśnie zauważyłem, że na jednej z moich stron przestał działać slider z obrazkami. Wyświetlał się tak jak do tej pory, ale przestało działać automatyczne przełączanie pomiędzy kolejnymi slajdami co określoną ilość sekund. Slider wykonany z użyciem standardowego pluginu do jQuery, jakim jest jQuery Tabs (dostarczany wraz z instalacją wordpressa, dlatego najczęściej z niego korzystam przy tego typu zadaniach).

Szybkie spojrzenie w konsolę błędów javascript w Firebugu…

Uncaught exception: no such method rotate for tabs widget instance…stał się początkiem dalszych poszukiwań. I rzeczywiście: w najnowszej wersji biblioteki jQuery, dostarczanej wraz z WordPressem została usunięta metoda ‚rotate’. Na szczęście znalazł się ktoś, kto stworzył „plugin do pluginu” dodający tę metodę z powrotem. Znaleźć go można tutaj, a oto metoda jak prawidłowo zaimplementować do w swojej skórce w WordPressie.

Plik jquery-ui-tabs-rotate.js kopiujemy z powyższego adresu i umieszczamy w katalogu /js wewnątrz naszej skórki. Należy go delikatnie jednak zmodyfikować. Na początku pliku dodajemy linijkę:

jQuery(document).ready(function($) {

na końcu zaś domknięcie tej powyższej linijki:

});

Teraz przechodzimy do pliku functions.php naszej skórki i dopisujemy tam w sekcji kolejkującej skrypty javascript następujący kod:

wp_enqueue_script( 'jquery-ui-tabs-rotate',  get_bloginfo('template_directory') . '/js/jquery-ui-tabs-rotate.js', array('jquery-ui-tabs'));

I to wszystko. Slajdy znów powinny zacząć zmieniać się automatycznie, a konsola FireBuga będzie czysta.

Oczywiście powyżej opisany sposób nie rozwiązuje wszystkich problemów ze slajdami, ale rozwiązuje ten, który ja spotkałem, więc dzielę się tym spostrzeżeniem :) Jeśli u Ciebie występuje inny, a jedynie podobny problem, postaraj się rozwiązać go samemu, postępując podobnie jak ja: zacznij od Firebuga, skopiuj komunikat błędu do Google i na pewno w kilka chwil zorientujesz się co jest nie tak.

Powiązane wpisy

O autorze: Konrad Karpieszuk

Jak każdy chyba tutaj zacząłem po prostu od blogowania. WordPress jednak tak mnie zafascynował, że szybko zabrałem się za tworzenie stron na nim opartych. Później przyszedł czas na pisanie poradników z nim związanych, zdarzyła się nawet książka. Współorganizowałem pierwszy polski WordCamp. Opiekuję się serwisem WPzlecenia.pl, a teraz także tym podserwisem, na którym właśnie jesteście: dev.WPzlecenia. Wszystkim życzę jak najwięcej wyniesionej WIEDZY odnośnie WordPressa. Zaparzcie kawę, usiądźcie wygodnie i - do lektury! :)

Obecnie jestem pracownikiem firmy tworzącej wtyczkę WPML (pozwala tworzyć wielojęzykowe strony), gdzie odpowiadam za jej rozwój. Jestem także autorem bardzo popularnej wtyczki sklepowej TradeMatik

3 komentarze + Dodaj komentarz

  • Kiedyś, po aktualizacji do 3.4 mój slider przestał działać. Przeszkadzała funkcja skórki ukrywająca wersję WP. Po usunięciu tej funkcji z pliku functions.php slider zaczął działać. Po ponownym wpisaniu tej funkcji slider działa do dziś. Nie wiem, co mogło być przyczyną. Skórka nie sprawdza, ani nie przechowuje nigdzie informacji o wersji WP. Po aktualizacji do 3.5 i 3.51 nie było żadnych zgrzytów.

    • moze kwestią był jakis cache, a usuniecie i przwrocenie wersji wp odswiezylo pik header.php, ktorym byl link do jquery?

      • Wszystkie moje przeglądarki, zarówno te z windowsów, jak i linuxa są ustawione tak, że przy zamknięciu usuwają wszystko ze swojej pamięci. Po ponownym uruchomieniu strona jest w całości wczytywana od nowa. Błąd był mi sygnalizowany też przez inne osoby. Na serwerze nie stosuję żadnych programów / wtyczek cache. Nie udało mi się dotąd powtórzyć tego błędu, więc wyjaśnienie będzie tajemnicą. Co ciekawe na localhoście (Wamp) tego błędu nie było. Uaktualnienie było z automatu.

Uwaga, leci reklama:



Gdzie nas czytać?

Autorzy »
Komentujący »
#wpzlecenia »