2013-08-29 4 views
12

Dlaczego żadna funkcja javascript napisana w dokumencie nie jest bezpośrednio wywoływana ze zdarzenia w jsp?Funkcja JavaScript wewnątrz dokumentu. Już

Np

$(document).ready(function(){ 
    function abc() 
    { 
      //Some stuff here 
    } 
}); 

Z czymś takim:

<input id="a" type="button" onclick="abc();"> 
+0

pokazać znaczników lub dokonać skrzypce –

+5

Bo to jest poza zakresem. Dołącz wydarzenie _in JavaScript_. – elclanrs

+0

Alternatywnie, przenieś deklarację funkcji poza 'document.ready'. Nie ma powodu, aby go tam umieszczać. –

Odpowiedz

20

Bo to nie jest dostępne w zasięgu globalnym. Dowolna funkcja zdefiniowana w funkcji anonimowej przekazanej jako argument do $.ready() jest dostępna tylko w ramach tej funkcji.

Aby osiągnąć to, co chcesz zrobić, trzeba coś takiego:

$(document).ready(function(){ 
    function abc() {} 

    $('#a').on('click',abc); 
}); 

Aby uzyskać więcej informacji na temat zakresu funkcji zobaczyć this MDN article

+0

Wielkie dzięki Mchl .. To oczyściło moje wątpliwości. – SpursP

+0

Jak możemy przekazać parametr do funkcji abc() w powyższym kodzie? – SpursP

+0

@Pranav: [Jak mogę przekazać argumenty do procedur obsługi zdarzeń w jQuery?] (Http://stackoverflow.com/q/979337/218196) –