我無法觸發DOM元素上的單擊事件。backbone.js不會觸發DOM元素上的單擊事件
這是我的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>
如果我將腳本移出「head」,它會工作,但我想將腳本保留在「head」中。如果我把'Backbone.View'放在$(function(){...})裏面,這個腳本就可以工作;'所以當DOM準備就緒時,我非常確定,因爲'link'已經存在於DOM中,不會被'Backbone.View'添加。 –
@MassimilianoMarini:但問題是當構建視圖「類」(這是執行'$('body')'函數調用時)'$('body')'不匹配任何東西你的觀點最終會出現錯誤的「el」,並且沒有任何結果。如果你使用'el:'body'',那麼當實例化視圖時,Backbone將查找'el'。 –
@ muistooshort'el:body'作品如果我在'