12
我知道这个问题出现了一百万次,但我已经通过了答案,没有一个帮助。 。jQuery&Backbone点击事件没有触发
JS小提琴: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});
在小提琴,当我绑定一个正常的$( '#登录-BTN')点击();事件工作正常,虽然它不在我自己的设置(与铬)。骨干点击事件不起作用。
这是标题的样子对我自己的代码
<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>
我知道它的最佳实践包括这些在页脚但现在,而这个问题的存在也无所谓(?)。
在Chrome开发者控制台中是否有任何错误? – 2013-03-01 13:06:45
Nope none,直接通过jQuery从控制台绑定点击事件似乎可行。我试过使用.on()等。他们都没有工作。骨干刚刚失败.. – SamV 2013-03-01 13:08:31
'
我必须设置EL没有的jQuery为它在工作JSFiddle ... el:'body'
来源
2013-10-08 16:08:53 webninjataylor
正如其他答案所解释的,对于
events
工作你需要使用el
属性。el
属性有必要通过引用el
属性中的元素来注册事件。但在某些情况下,html尚未生成。在这些情况下,您可以使用tagName
而不是el
。tagName
对于动态生成元素非常有用,就像document.createElement
一样。来源
2016-07-10 12:45:45
Backbones el Node定义视图控制器的工作区。只有el内的节点才会受到Backbone渲染方法的影响,收听或更改。
将el设置为尽可能靠近要用View Controller维护的区域,以避免与其他视图控制器发生交叉或不需要的父母操作。
想象一下View1包含View2的区域并在其节点上渲染。如果View2中包含节点引用,View2将不再起作用,因为它们可能会从View1中的渲染中断开。
因此,请注意查看交叉点及其风险。骨干是一个图书馆,而不是一个框架,并不会保护你免于做愚蠢的事情。
来源
2016-11-23 07:55:20 Steffomio