2011-11-01 39 views
12

Ho il seguente:Come posso denominare e chiamare una funzione jQuery?

$('#EID').change(function() { 
       $.ajax({ 
        url: "/Administration/stats", 
        data: { DataSource: $('#DataSource').val(), 
          EID: $('#EID').val() 
        }, 
        success: function (data) { 
         $('#TID').html(data); 
        } 
       }); 
      }); 

Questo funziona bene, ma voglio essere in grado di chiamare la funzione() in altri momenti e non solo quando le modifiche EID. Qualcuno può mostrarmi come posso estrarre il codice funzione in un blocco separato con un nome e quindi chiamare quel nome di funzione.

risposta

31
function doSomething() { 
    $.ajax(...); 
} 

$('#EID').change(doSomething); 

Nore che si deve non aggiungere () dopo il nome della funzione in quanto si desidera passare alla funzione, non il suo valore di ritorno.

Nel caso in cui si volesse passare qualche parametro alla funzione, devi fare in questo modo:

function doSomething(someParam) { 
    $.ajax(...); 
} 

$('#EID').change(function() { 
    doSomething(whateverSomeParamShouldBe); 
}); 
+1

Grazie molto. Questo è esattamente ciò di cui ho bisogno. Se volessi passare il parametro $ ('# EID'). Val(), allora come dichiarare il parametro e quindi usarlo all'interno della funzione? –

+0

@ Samantha: Di solito è meglio farlo avvolto in una funzione che contiene tutti i tuoi contenuti (chiamata "funzione scoping") perché altrimenti crei simboli globali e lo spazio globale nei browser web è già abbastanza affollato. Due esempi: http://pastie.org/2792207 –

+0

@Samantha: * "Se volessi passare il parametro $ ('# EID'). Val(), allora come dichiarare il parametro e poi usarlo all'interno del parametro funzione? "* Esattamente il modo in cui ThiefMaster ha dimostrato nella seconda parte della sua risposta, ad esempio: http://pastie.org/2792210 –

Problemi correlati