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

jQuery - show isn't defined

Cloud VPS
0 głosów
434 wizyt
pytanie zadane 16 lutego 2016 w JavaScript przez Radekoslaw123 Gaduła (3,080 p.)

Nie chcę działać funkcja show, chcę pokazać po kliknięciu div, konsola w mozilli wywala błąd "ReferenceError: show is not defined", szukam w kodzie i nie mogę znaleźć

<!DOCTYPE HTML>
<html lang="pl">
    <head>
        <meta charset="utf-8">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
        <script src="ckeditor/ckeditor.js"></script>
        <script>
            $(document).ready(function () {
                function show(number) {
                    switch(number) {
                        case 1:
                            $("#text").html('<form action="send.php" method="post"><input type="text" name="title"><textarea name="content" id="editor"></textarea><input type="submit"></form>');
                            $("#text").css({
                                display: block
                            });
                            CKEDITOR.replace('editor');
                            break;
                    }
                } 
            });
        </script>
        <style>
            #text {
                display:none;
            }
        </style>
    </head>
    <body>
        <noscript>Do działanie jest wymagany JavaScript! Twoja przeglądarka nie wspiera JavaScript lub ma go wyłączonego, wejdź w ustawienia i go włącz.</noscript>
        <a href="#" onclick="show(1)">Dodaj post</a>
        <div id="text"></div>
    </body>
</html>

 

1 odpowiedź

+1 głos
odpowiedź 16 lutego 2016 przez writen Nałogowiec (29,060 p.)
A dlaczego swoją funkcję definiujesz wewnątrz funkcji ready()?
komentarz 16 lutego 2016 przez Radekoslaw123 Gaduła (3,080 p.)
jest jakaś różnica między $(function()) a $(document).ready(function())?
komentarz 16 lutego 2016 przez writen Nałogowiec (29,060 p.)
A ty w ogóle rozumiesz do czego to służy? To tak jakbyś definiował funkcje podczas zdarzenia load. Nie widzisz, że twoja funkcja nie ma takiego zasięgu byś mógł ją wywołać tam gdzie chcesz?
komentarz 16 lutego 2016 przez Radekoslaw123 Gaduła (3,080 p.)

Niby zmieniłem na to $(function(){}) ale dalej nie działa

<!DOCTYPE HTML>
<html lang="pl">
    <head>
        <meta charset="utf-8">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
        <script src="ckeditor/ckeditor.js"></script>
        <script>
            $(function() {
                function show(number) {
                    switch(number) {
                        case 1:
                            $("#text").html('<form action="send.php" method="post"><input type="text" name="title"><textarea name="content" id="editor"></textarea><input type="submit"></form>');
                            $("#text").css({
                                display: block
                            });
                            CKEDITOR.replace('editor');
                            break;
                    }
                } 
            });
        </script>
        <style>
            #text {
                display:none;
            }
        </style>
    </head>
    <body>
        <noscript>Do działanie jest wymagany JavaScript! Twoja przeglądarka nie wspiera JavaScript lub ma go wyłączonego, wejdź w ustawienia i go włącz.</noscript>
        <a href="#" onclick="show(1)">Dodaj post</a>
        <div id="text"></div>
    </body>
</html>

 

komentarz 16 lutego 2016 przez Magicone Nałogowiec (45,100 p.)
Nie ma prawa działać. Funkcję show definiujesz w zamkniętym scope.
komentarz 16 lutego 2016 przez Radekoslaw123 Gaduła (3,080 p.)
Czyli mam to zamienić na $(function()) czy go usunąć ?
komentarz 16 lutego 2016 przez Magicone Nałogowiec (45,100 p.)
Tak, wywal z $().
komentarz 16 lutego 2016 przez Radekoslaw123 Gaduła (3,080 p.)
Działa, możesz dać jakiś komentarz tutaj np. Lorem ipsum... Dam naj
komentarz 16 lutego 2016 przez writen Nałogowiec (29,060 p.)
Żeby twoja funkcja była widoczna w całym dokumencie musi mieć zasięg globalny, a ty wsadzasz ją do jakiegoś scope'a który ten zasięg blokuje.

Nie rozumiesz jak działają zasięgi w javascript, to może znak żeby o tym trochę poczytać, bo bez takich podstaw to ani rusz.

Mam wrażenie, że tu trzeba mówić jak do dzieci w przedszkolu.
komentarz 16 lutego 2016 przez Magicone Nałogowiec (45,100 p.)
Nie chce mi się, daj osobie u której napisałem komentarz. :P

Podobne pytania

+1 głos
2 odpowiedzi 219 wizyt
pytanie zadane 22 listopada 2015 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 218 wizyt
pytanie zadane 13 sierpnia 2015 w JavaScript przez niezalogowany
0 głosów
0 odpowiedzi 967 wizyt
pytanie zadane 16 marca 2022 w PHP przez roberto23 Początkujący (270 p.)

93,460 zapytań

142,454 odpowiedzi

322,724 komentarzy

62,837 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

Kursy INF.02 i INF.03
...