0

我正在尝试使用主干捕获事件我得到了这样的 html

<!DOCTYPE html>
<html>
<head id="head"> 
    <title>Con RequireJS</title>
    <script data-main="Scripts/main" src="Scripts/require.js"></script>
</head>
<body>
    <div class="container">
            <button class="btnAuthenticate">Login with FourSquare</button>
    </div>

</body>
</html>

我正在尝试通过单击该按钮来捕获事件

events : {
'click .btnAuthenticate' : 'doAction' 
}

但是当我创建视图时

view = new thatView( {model:aModel, tagName: 'div', className: 'container' } ) ;

el 似乎在控制台中

console.log(view.el) 

得到我

<div class="container><div>

但该事件不起作用!相反,如果我打电话

view = new thatView({el:'body'});

它做了它应该做的事情,但是我不能附加到我想要的 el 上!有什么办法吗?

4

1 回答 1

0

如果您定义tagName: 'div', className: 'container'Backbone 将创建一个 div.container元素。但是,如果你想引用一个已经存在的 DOM 节点,那么你应该使用它el。我想这应该适合你:

view = new thatView({model:aModel, el: $('.container')});

只需确保在 DOM 加载后创建一个视图。

更多信息http://backbonejs.org/#View-constructor

于 2012-12-08T07:41:17.980 回答