Lavorando alla riscrittura del front-end del mio sito in Coffeescript. Capisco come associare una funzione di clic a una classe.CoffeeScript - Collegamento Fare clic sugli eventi per caricare dinamicamente oggetti con JQuery On
$('.song').click ->
//code
Tuttavia, sto riscontrando alcuni problemi con il contenuto caricato in modo dinamico. So che nel JQuery, la soluzione a questo sarebbe quella di utilizzare la funzione "On" in questo modo:
$(document).on('click', '.song', function(){
//code
});
Ma io sono sicuro su come questo si traduce in CoffeeScript. Ho l'impressione che la freccia del razzo -> si traduca in una funzione anonima in javascript, ma come funziona se la funzione è uno dei parametri? Ho provato un po 'di sintassi diversa e nessuno di loro sembra funzionare, grazie!
@Epeli, mentre la modifica è anche una possibilità che non è la mia preferenza. A seconda del contenuto della funzione, CS ha difficoltà a trovare la fine, che viene risolta inserendo le parentesi esplicitamente. Trovo fastidiose le ambiguità in CS; '$ (document) .on' per esempio restituisce' on'without invocandolo, 'do $ (document) .on' lo invoca,' $ (document) .on something' anche lo invoca, e 'do $ (document) . In qualche cosa invocherà il risultato. L'uso di parentesi graffe per argomenti rende questa muss meno incline agli errori IMHO. Quindi modificherò di nuovo. Sentiti libero di postare il tuo - lo inviterò. ;) – Lucero
Roger e mi dispiace. Sembra una modifica piuttosto ovvia visto che raramente vedi il codice CS con parentesi se l'ordine di esecuzione del codice è chiaro. Come in questo banale esempio. – Epeli
@Epeli, abbastanza giusto, motivo per cui mi sono spiegato. Avendo migliaia di linee di codice CS in esecuzione in una SPA modulare e vedendo i miei sviluppatori in difficoltà con alcuni dei comportamenti spiegati, ho deciso di richiedere i paren per le invocazioni dei metodi nella mia organizzazione, allo stesso tempo sto impedendo l'uso di 'do '. Questo infatti aiuta a mantenere alta la qualità del codice, specialmente durante la manutenzione del codice. – Lucero