Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.javascript > #3234

Re: problem z formularzem

Subject Re: problem z formularzem
Newsgroups pl.comp.lang.javascript
References <nbfoiq$ulj$1@node2.news.atman.pl> <affac$56db6ddc$520da86c$1156@nntpswitch.blueworldhosting.com> <nbguak$dtb$1@node1.news.atman.pl>
From Cezary Tomczyk <cezary.tomczyk@gmail.com>
Date 2016-03-06 10:47 +0000
Message-ID <f0b99$56dc0adb$520da86c$2116@nntpswitch.blueworldhosting.com> (permalink)
Organization BWH Usenet NNTPSwitch-Cluster

Show all headers | View raw


On 06/03/2016 09:47, Łukasz wrote:
> W dniu 06.03.2016 o 00:38, Cezary Tomczyk pisze:
>> Zamiast inline event handlerów zrób to poprawnie:
>>
>> $('#btnSave').click(pliki_edytuj);
>>
>> https://jsfiddle.net/sygd9aa3/1/
>>
>
> Cześć.
> Próbuję zrobić jak piszesz, czyli button wygląda tak:
> <button type="button" id="12345" class="btn btn-primary">Dodaj /
> Zmień</button>
>
> i do tego wywołanie:
> <script type="text/javascript">
>      $('#12345').click(pliki_edytuj);
> </script>
>
> Jednak funkcja pliki_edytuj nie jest wywoływana.
> Co tu robię źle?

Podejrzewam, że "pliki_edytuj" jest niezdefiniowaną referencją. 
Odwołujesz się do czegoś, co nie istnieje.

Zrób tak:

1. W Google Chrome w narzędziach developera ustawi breakpoint na linię:

$('#12345').click(pliki_edytuj);

2. Jak przeglądarka podczas uruchomienia aplikacji zatrzyma się na tym 
breakpoincie to najedź myszką na pliki_edytuj i sprawdź, jaki będzie 
rezultat. Są dwie opcje: undefined albo function.

Jeśli będziesz miał undefined, co jest wysoce prawdopodobne, to znaczy, 
że odwołujesz się do funkcji, do której nie masz dostępu. Musisz mieć 
dostęp do funkcji pliki_edytuj.

Przykład:

kontekst globalny window

var pliki_edytuj = (function() {

   function pliki_edytuj() {
     window.alert('pliki_edytuj');
   }

}());

pliki_edytuj();

Uruchomienie powyższego kończy się błędem:

Uncaught ReferenceError: pliki_edytuj is not defined

https://jsfiddle.net/tv65wf7k/

Jeśli jednak zrobisz:

var pliki_edytuj = (function() {

   function pliki_edytuj() {
     window.alert('pliki_edytuj');
   }

   return pliki_edytuj;

}());

pliki_edytuj();

to otrzymasz rezultat window.alert();

https://jsfiddle.net/tv65wf7k/1/

-- 
Cezary Tomczyk
http://www.ctomczyk.pl/

Back to pl.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

problem z formularzem Łukasz <lukaszWy@rostalskiTnijTo.pl> - 2016-03-06 00:02 +0100
  Re: problem z formularzem Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2016-03-05 23:38 +0000
    Re: problem z formularzem Łukasz <lukaszWy@rostalskiTnijTo.pl> - 2016-03-06 10:47 +0100
      Re: problem z formularzem Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2016-03-06 10:47 +0000
    Re: problem z formularzem Łukasz <lukaszWy@rostalskiTnijTo.pl> - 2016-03-06 13:16 +0100
      Re: problem z formularzem Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2016-03-06 12:34 +0000
  Re: problem z formularzem Łukasz <lukaszWYWALto@rostWYWALtoalski.pl> - 2016-03-07 11:55 +0100
    Re: problem z formularzem Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2016-03-07 11:36 +0000
      Re: problem z formularzem Łukasz <lukaszWYWALto@rostWYWALtoalski.pl> - 2016-03-07 13:57 +0100

csiph-web