2014-10-24 24 views
12

Mam następujący plik JavaScript:Metoda wyrażenie nie jest typu Function

/*global $ */ 

function foo() { 
    'use strict'; 
    var $tr = $('table tr'), 
     $td = $tr.children('td'); 

    $td.html('Hello World'); 
} 

W PHPStorm, children zostaje podkreślone ze słabym ostrzeżenia. Mousing nad nim ukazuje się komunikat:

Metoda wyrażenie nie jest typu Function

Ten plik znajduje się w tym samym katalogu co jquery.min.js (v. 1.11.0, jeśli to ma znaczenie) .

Jak mogę to naprawić?

Należy zauważyć, że powyższy przykład jest minimalistycznym przykładem wystarczającym do odtworzenia problemu; to nie jest mój rzeczywisty kod, ale przyniesie taki sam rezultat.

+1

czy jesteś pewien, że '$' odnosi się do jQuery? możesz spróbować 'var $ tr = jQuery ('table tr')' –

+0

Dobra, to jest dziwne. Tak, jestem pewien, że to jest to, co się odnosi w tym sensie, że zdecydowanie odnosi się do jQuery, kiedy go uruchomię. Ale wprowadzenie zmiany, którą zasugerowałeś, sprawia, że ​​ostrzeżenie znika w PHPStorm. Jakieś myśli o tym, dlaczego tak jest? –

+0

Należy zauważyć, że mój prawdziwy kod źródłowy jest częścią istniejącego, wdrożonego w dzikie projektu, więc wolałbym, aby ostrzeżenie odejść w PHPStorm niż zmienić wszystkie zastosowania '$' na 'jQuery'. Dzięki. –

Odpowiedz

14

Mam odpowiedź dzięki Arunowi P Johny. Potrzebowałem mieć jquery-1.11.1.js (wersja nieskompresowana) gdzieś w moim projekcie. Dodałem go i PHPStorm natychmiast rozwiązał wszystkie ostrzeżenia związane z jQuery.

0

Innym rozwiązaniem byłoby dodanie jQuery jako biblioteka tutaj:

oknie Ustawienia/Preferencje kliknij przycisk pod Języki JavaScript i ramy, a następnie kliknij bibliotek.

+0

W rzeczywistości nie rozwiązało to problemu w momencie, w którym miało to miejsce. Nie jestem pewien, czy to rozwiąże problem z najnowszymi wersjami PHPStorm. –