Ecco quello che ho finito per fare.
è una combinazione della soluzione di Juan Mendes, e utilizzando un method from the prototype library
Originariamente, c'era una funzione che correva questo codice:
myObject.adjustSection(section) {
jQuery(document).trigger('section:' + section);
}
// I couldn't edit this function
Così ho esteso la funzione con il metodo di prototipo wrap
, dato che il mio progetto utilizzato prototipo e jQuery.
// My custom function wrapper
// extend adjustSection to include new event trigger
myObject.prototype.adjustSection = myObject.prototype.adjustSection.wrap(
function(parentFunction, section) {
// call original function
parentFunction(section);
// fire event w/section info
jQuery(document).trigger({
type: 'adjustSection',
section: section
});
}
);
Quindi, esegue l'originale, ma genera anche il mio evento personalizzato che include le informazioni sulla sezione.
Ora, posso fare questo per osservare l'evento e ottenere il tipo di sezione:
jQuery(document).on('adjustSection', function(event) {
event.section; // contains the section I need
});
Naturalmente, questo significa che devo utilizzare sia prototipo e jQuery all'interno della stessa portata, che non è il cosa migliore del mondo. Ma ha funzionato.
fonte
2014-12-15 18:44:11
Non puoi! Il 'trigger' di jQuery non memorizza gli eventi da nessuna parte, cosa che di solito accade quando i gestori di eventi sono vincolati, quindi, se viceversa, probabilmente lo potresti fare. Ovviamente tutto è possibile, puoi analizzare tutto il javascript e cercare le chiamate a 'trigger', ma è semplicemente sbagliato. – adeneo
Penso che tu sia sfortunato, quelli sono fondamentalmente eventi diversi ... Quella parte dinamica dell'evento avrebbe dovuto essere un argomento per l'evento. 'jQuery (document) .trigger ('section', section);' Non hai modo di sapere quali sono tutte le sezioni valide? Se è così, puoi fare '$(). On ('sezione: sezione superiore: sezione inferiore: sezione destra: sinistra')' –
http://stackoverflow.com/questions/26225987/one-listener-for-all- events-in-jquery-event-namespace/26227362 # 26227362 – guest271314