2013-03-22 19 views
7

Per qualche motivo non so perché il mio evento in una vista backbone non funzioni. Ho cercato di rispondere a Google ma non ho trovato nulla che potesse aiutarmi.Gli eventi di backbone non funzionano

In sostanza, il mio codice è questo:

Backbone:

var ViniView = Backbone.View.extend({ 
    el: $('.container'), 
    events: { 
     "click .clickme" : "render" 
    }, 
    render: function() { 
     alert("please, work"); 
    } 
}); 

new ViniView; 

HTML

<div class="container"> 
    <button class="clickme"> 
    test 
    </button> 
</div> 
+1

Puoi fornire un esempio http://jsfiddle.net/? –

+1

non hai bisogno che l'el faccia riferimento a un articolo specifico, non a una classe? – explunit

risposta

4

Il vostro esempio funziona bene per me in this fiddle.

Come indicato dall'unità, il tuo el dovrebbe fare riferimento a un elemento e non dovrebbe essere un oggetto jQuery. $el si prende cura di questo. Secondo the docs:

All views have a DOM element at all times (the el property), whether they've already been inserted into the page or not. 

Verificare che si sta correttamente caricare il Jquery, Underscore e gli script Backbone (in questo ordine). Assicurati inoltre che lo script venga eseguito una volta che la pagina è pronta e non, ad esempio, prima che il tuo DOM abbia completato il caricamento (causando che la tua vista non si collega a nulla).

+2

heey amico, grazie! l'errore che ho commesso è stato quello di eseguire il mio script backbone fuori dalla mia funzione pronta. Ora funziona, grazie. –

+0

@ J.Vinicius Buono a sapersi! L'ho fatto prima ... –

Problemi correlati