12
So che questo problema si presenta un milione di volte, ma ho ricevuto le risposte e nessuno di loro ha aiutato. .jQuery e backbone eventi di clic non attivati
JS Fiddle: http://jsfiddle.net/ZrYYy/
var LoginView = Backbone.View.extend({
initialize: function() {
console.log('Login View Intialized');
this.el = $('#login-container');
},
// Setup the events (mainly the login)
events: {
// Login - function
"click #login-btn" : "checkLogin"
},
// Actually authorization function
checkLogin: function() {
console.log("Authorizing login details with server...");
}
});
// Get it all up and going
var newLogin = new Login();
var loginView = new LoginView({model: newLogin});
Nel violino, quando mi legano a $ normale ('# login-btn') clicca(); evento funziona bene anche se non è nella mia configurazione (con chrome). L'evento click backbone non funziona in alcun modo.
Questo è ciò che l'intestazione appare come il mio codice
<link href="assets/admin/css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="assets/admin/css/bootstrap-responsive.css" rel="stylesheet" type="text/css">
<link href="assets/admin/css/style.css" rel="stylesheet" type="text/css">
<script src="assets/admin/js/jquery-1.9.1.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="assets/admin/backbone/login.js"></script>
<script src="assets/admin/js/bootstrap.min.js"></script>
So che la sua migliore prassi di includere questi nel piè di pagina, ma per ora, mentre questo problema esiste, non importa (?).
Ci sono errori nella console degli sviluppatori di Chrome? –
No, non è possibile collegare un evento click dalla console direttamente tramite jQuery. Ho provato a utilizzare .on() ecc., Nessuno di essi funziona. Backbone non funziona ... – SamV
'
ho dovuto impostare el senza jQuery per farlo funzionare in JSFiddle ... el: 'body'
fonte
2013-10-08 16:08:53 webninjataylor
Come spiegato da altra risposta, per
events
per funzionare è necessario utilizzare la proprietàel
. La proprietàel
è necessaria per eseguire il backbone sulla registrazione degli eventi facendo riferimento all'elemento nella proprietàel
. Ma in alcuni casi, l'html non è ancora stato generato. In questi casi, è possibile utilizzaretagName
anzichéel
.tagName
è utile per generare elementi dinamicamente comedocument.createElement
.fonte
2016-07-10 12:45:45
Backbones el Node definisce l'area di lavoro del View Controller.Solo i nodi in el verranno interessati, ascoltati o modificati dal metodo di rendering di Backbones.
Impostare il più vicino possibile all'Area che si desidera mantenere con il View Controller per evitare intersezioni o genitorialità indesiderate con altri View Controller.
Imagine View1 include l'Area di View2 e il rendering sui suoi Nodi. View2 non funzionerà più se contiene References of Nodes, perché potrebbero essere interrotti attraverso il rendering da View1.
Quindi fai attenzione a View Intersections e ai suoi rischi. Backbone è una libreria, non un framework e non ti proteggerà dal fare cose stupide.
fonte
2016-11-23 07:55:20 Steffomio