我无法在DOM元素上触发click事件。
这是我的js文件:app.js.我很确定我在这里错过了什么或做错了但我无法弄清楚在哪里。
var App = Backbone.View.extend({
el: $('body'),
initialize: function() {
_.bindAll(this, 'sayHello');
},
events: {
'click .link': 'sayHello'
},
sayHello: function(e) {
alert('Hello!');
}
});
var app = new App();
这是我的HTML文件:index.htm。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<script type="text/javascript" src="assets/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="assets/js/underscore-min.js"></script>
<script type="text/javascript" src="assets/js/backbone-min.js"></script>
<script type="text/javascript" src="assets/js/app.js"></script>
</head>
<body>
<a href="#" class="link">Click here!</a>
</body>
</html>
答案 0 :(得分:2)
这是狡猾的承认。从逻辑上思考代码。您的JS脚本位于head
。
jQuery选择器el: $('body')
尚不存在。 (JavaScript立即执行)。尝试el: 'body'
。
答案 1 :(得分:0)
您必须在dom load事件上初始化视图。
var App = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'sayHello'); // you don't need this for your code to work
},
events: {
'click .link': 'sayHello'
},
sayHello: function(e) {
alert('Hello!');
}
});
$(function(){
var app = new App({el: $("body")});
});