• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

"Uncaught TypeError: $ is not a function" przy ładowaniu skryptu JS do Wordpressa

VPS Starter Arubacloud
0 głosów
2,744 wizyt
pytanie zadane 15 września 2015 w JavaScript przez marcin1333 Początkujący (400 p.)

Witam,

pierwszy raz przenoszę stronę stworzoną na podstawie Bootstrapa do Wordpressa, aby dodać możliwość obsługi karty "Aktualności" i natrafiłemna problem....

mianowicie, kiedy dodaję skrypt poprzez kartę "funcions" to skrypt przestaje działać na wordpressie i wyskakuje mi w debugu chrome następujący błąd:

Uncaught TypeError: $ is not a function(anonymous function) @ smsc.js?ver=1.0:1

gdzieś wyczytałem, że to problem wordpressa, że jest jakiś konflikt z funkcją "$" i trzeba trochę inaczej funcję zapisać. Niestety nie umiem na tyle dobrze JS aby samemu sobie poradzić, a próbowałem...

jest mi ktoś w stanie pomóc w jaki sposób mam napisać poniższy skrypt:

$(document).ready(function() {
    // navigation click actions    
    $('.scroll-link').on('click', function(event){
        event.preventDefault();
        var sectionID = $(this).attr("data-id");
        scrollToID('#' + sectionID, 750);
    });
    // scroll to top action
    $('.scroll-top').on('click', function(event) {
        event.preventDefault();
        $('html, body').animate({scrollTop:0}, 'slow');         
    });
    // mobile nav toggle
    $('#nav-toggle').on('click', function (event) {
        event.preventDefault();
        $('#main-nav').toggleClass("open");
    });
});
// scroll function
function scrollToID(id, speed){
    var offSet = 0;
    var targetOffset = $(id).offset().top - offSet;
    var mainNav = $('#main-nav');
    $('html,body').animate({scrollTop:targetOffset}, speed);
    if (mainNav.hasClass("open")) {
        mainNav.css("height", "1px").removeClass("in").addClass("collapse");
        mainNav.removeClass("open");
    }
}
if (typeof console === "undefined") {
    console = {
        log: function() { }
    };
}

2 odpowiedzi

+2 głosów
odpowiedź 15 września 2015 przez Magicone Nałogowiec (45,100 p.)
wybrane 15 września 2015 przez marcin1333
 
Najlepsza

Najprościej - opakuj cały skrypt w to:

(function($){
	//script
})(jQuery);

 

komentarz 15 września 2015 przez marcin1333 Początkujący (400 p.)
edycja 15 września 2015 przez marcin1333

nie zgłasza błędu już, ale za to skrypt nie działa... wydaje mi się, że ważne w nim jest te początkowe "$(document).ready"

kurde już brak mi normalnie pomysłów... 

PRZEPRASZAM - DZIAŁA! laugh

przez nieuwagę nie opakowałem całego skryptu... mój błąd... trzeba opakować calutki skrypt w pliku JS, a nie pojedyncze funkcje. Bardzo Ci dziękuję kolego! yeswink

A dla potomnych, to poniżej daję wyjaśneinie z dokumentacji Wordpressa:

http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_Wrappers

komentarz 15 września 2015 przez marcin1333 Początkujący (400 p.)

Jeszcze raz - DZIĘKI! cool

0 głosów
odpowiedź 15 września 2015 przez Tomasz90 Nałogowiec (25,140 p.)

Niby to powinno pomóc:

jQuery(document).ready(function($) {
// tutaj można używać $
});
komentarz 15 września 2015 przez marcin1333 Początkujący (400 p.)

ciągle ten sam błąd... własnei to już próbowałem... normalnie już włosy zaczynam z głowy wyrywać...crying

Podobne pytania

0 głosów
1 odpowiedź 791 wizyt
0 głosów
1 odpowiedź 285 wizyt
pytanie zadane 9 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 129 wizyt

92,958 zapytań

141,916 odpowiedzi

321,148 komentarzy

62,288 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...