2013-08-29 9 views
12

Perché nessuna funzione javascript scritta all'interno di document.ready viene chiamata direttamente da un evento in jsp?Funzione Javascript all'interno del documento.ready

Esempio:

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

da qualcosa come:

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

mostrare il proprio margine di profitto o fare un violino –

+5

Perché è fuori portata. Allega l'evento _in JavaScript_. – elclanrs

+0

In alternativa, spostare la dichiarazione della funzione al di fuori di 'document.ready'. Non c'è motivo di metterlo lì. –

risposta

20

Perché non è disponibile in ambito globale. Qualsiasi funzione definita all'interno della funzione anonima passata come argomento a $.ready() è disponibile solo all'interno di quella funzione.

per ottenere quello che si vuole fare è necessario qualcosa di simile:

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

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

Per ulteriori informazioni sulla portata Funzione vedi this MDN article

+0

Grazie mille Mchl .. Questo chiarì il mio dubbio. – SpursP

+0

Come possiamo passare il parametro alla funzione abc() nel codice precedente? – SpursP

+0

@Pranav: [Come posso passare argomenti ai gestori di eventi in jQuery?] (Http://stackoverflow.com/q/979337/218196) –