Il resize
event viene inviato a window
:
L'evento resize
viene inviato all'elemento window
quando la dimensione della finestra del browser cambia
Ma gli eventi di una vista Backbone sono legati alla vista del el
utilizzando delegate
. La vista el
non riceverà un evento resize
, pertanto inserire 'resize articule': 'repositionBoards'
nella vista events
non servirà a nulla.
Se avete bisogno di ottenere l'evento resize
nella vista, dovrete associarlo a window
te:
initialize: (options) ->
$(window).on('resize', this.repositionBoards)
remove: ->
$(window).off('resize', this.repositionBoards) # Clean up after yourself.
@$el.remove() # The default implementation does this.
@
repositionBoards: ->
# Use => if you need to worry about what `@` is
board.align()
Si noti inoltre l'aggiunta di un remove
in modo che si può associare il vostro gestore resize
. Ovviamente, vuoi usare view.remove()
per rimuovere la tua vista o semplicemente non preoccuparti se questa è l'intera applicazione.
fonte
2012-06-28 23:32:56
Grazie per la risposta completa. La mia unica preoccupazione è che le dimensioni dei miei articoli cambiano quando viene inserito il testo in esse. Quando la dimensione si espande, voglio chiamare le schede di riposizionamento. Ma dal momento che il ridimensionamento viene inviato alla finestra, questo non mi fa bene. Sai se ci sono eventi che possono essere legati al ridimensionamento di un articolo o di un div? Proprio quando si espande come quando aumenta l'altezza o la larghezza. Grazie ancora. –
@ user1489926: Ma non c'è alcun evento di ridimensionamento su qualcosa di diverso dalla finestra, AFAIK devi farlo nel modo più duro: http://stackoverflow.com/q/172821/479863 –