• 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

Object Storage Arubacloud
0 głosów
2,709 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ź 556 wizyt
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 9 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 121 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...