È possibile associare una funzione a un'altra funzione su invoke? Quindi, ad esempio, sarebbe qualcosa di simile:Evento chiamato in funzione in JS?
function a(){...}
function b(){...}
b.bind("onInvoke","a");
Così, quando viene chiamato b, viene automaticamente chiamato anche a.
MODIFICA: OK OK, per chiarire, questa non è una domanda sul concatenamento. L'idea è quella di trovare un modo elegante per legare eventi. Osservare il normale modo "non elegante" con il normale richiamo della funzione:
function handler(){...}
function caller1(){handler(); ...}
function caller2(){handler(); ...}
function caller2(){handler(); ...}
// More callers all over your website everywhere else
Che funziona? Ma cosa succede se ho un chiamante dappertutto? È difficile organizzare o cambiare le cose.
Osservare ora la soluzione superiore! (Se uno esiste)
function handler(){...}
// Caller make no reference to handler on creation
function caller1(){...}
function caller2(){...}
function caller3(){...}
// Caller function are still all over the place, all over your website
// Event handler registered later in one location here, doesn't matter where they are phsically
caller1.bind("onInvoke",handler);
caller2.bind("onInvoke",handler);
caller3.bind("onInvoke",handler);
così molto simile a un normale HTML - JQuery registrazione dell'evento. Non scrivi onClick su tutte le immagini su cui l'utente può fare clic (che sono dappertutto), sarebbe troppo difficile organizzarlo! Basta scrivere uno semplice
$("img").bind("onClick",click_handler);
per l'intero sito. Questo è il jist di ciò che sto cercando, ad eccezione delle funzioni JS.
Spero che chiarisca le cose.
MODIFICA 2: È necessario lavorare con IE7 !!! JavaScript 1.8.5 è fantastico e tutto, ma niente lo supporta ora.
possibile duplicato (http://stackoverflow.com/questions/3406467/can-i-intercept-a-function-called-directly) –
@AndyE Ho la sensazione che l'OP sia più interessata a una soluzione per chiamare automaticamente le funzioni in sequenza. – Peter
@Peter: non ne sono così sicuro. * "Così, quando viene chiamato b, viene automaticamente chiamato anche a." * - c'è potenzialmente una differenza nell'ordine di esecuzione (questa domanda potrebbe volere che 'a' venga invocato dopo' b', ad esempio), ma la premessa tra i due le domande sembrano essere le stesse; * "quando viene chiamata una funzione, chiama questa altra funzione" *. Potrei sbagliarmi, ma spetta all'OP fare una chiara distinzione tra le due domande :-) –