12
Ich weiß, dass dieses Problem eine Million Mal auftritt, aber ich habe die Antworten durchgelesen und keiner von ihnen hilft. .jQuery & Backbone klicken Ereignisse nicht feuern
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});
In der Geige, wenn ich ein normalen $ ('# Login-btn') binden klicken(); Event es funktioniert gut, obwohl es nicht in meinem eigenen Setup (mit Chrom). Das Backbone-Klickereignis funktioniert überhaupt nicht. Diese
ist das, was der Kopf sieht aus wie in meinem eigenen Code
<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>
Ich weiß, seine beste Praxis diese in der Fußzeile enthalten, aber für jetzt, während dieses Problem besteht es keine Rolle spielt (?).
Gibt es Fehler in der Chrome-Entwicklerkonsole? –
Nein, kein Klick-Ereignis von der Konsole direkt über jQuery zu binden scheint zu funktionieren. Ich habe versucht mit .on() etc .. keiner von ihnen funktioniert auch nicht. Backbone nur fehlschlägt .. – SamV
'
I el ohne jQuery zu setzen hatte es in Arbeit JSFiddle ... el: 'body'
Quelle
2013-10-08 16:08:53 webninjataylor
Wie von anderer Antwort fürerklärtzu arbeiten, müssen Sie
el
Eigentum verwenden.el
Diese Eigenschaft ist erforderlich, um bei der Registrierung von Ereignissen eine Rückgratfunktion zu übernehmen, indem auf das Element in der Eigenschaftel
verwiesen wird. In einigen Fällen wird der HTML-Code jedoch noch nicht generiert. In diesen Fällen können SietagName
anstelle vonel
verwenden.tagName
ist nützlich, um Element dynamisch wiedocument.createElement
zu generieren.Quelle
2016-07-10 12:45:45
Backbones el Node definiert den Arbeitsbereich des View Controllers.Nur Knoten innerhalb von el werden von Backbones render Methode beeinflusst, angehört oder geändert.
Stellen Sie el so nah wie möglich an den Bereich ein, den Sie mit Ihrem View Controller pflegen möchten, um Überschneidungen oder unerwünschte Überlagerungen mit anderen View Controllern zu vermeiden.
Imagine View1 enthält den View2-Bereich und rendert über seine Knoten. View2 wird nicht mehr funktionieren, wenn es Referenzen von Knoten enthält, da sie durch das Rendering von View1 unterbrochen werden können.
Achten Sie also auf Sichtüberschneidungen und ihre Risiken. Backbone ist eine Bibliothek, kein Framework und schützt Sie nicht davor, dumme Dinge zu tun.
Quelle
2016-11-23 07:55:20 Steffomio