因此,我正在使用RequireJs,Mustache和Backbone.js製作測試應用程序。用Mustache模板渲染模型集合,我取得了一些成功。但我的小鬍子模板有一個按鈕,當我嘗試綁定視圖中按鈕上的點擊事件時,按鈕點擊不會調用回調函數。我真的陷入了困境,有人能告訴我我哪裏做得不對嗎?與Backbone.js一起使用鬍子時事件不起作用
這裏是我的代碼:
ItemView.js:
define(['jquery', 'backbone', 'underscore', 'mustache', '../../atm/model/item'], function ($, Backbone, _, Mustache, Item) {
var ItemView = Backbone.View.extend({
initialize: function() {
},
tagName: 'li',
events: {
'click .button': 'showPriceChange'
},
render: function() {
var template = $('#template-atm').html();
var itemObj = this.model.toJSON();
itemObj['cid'] = this.model.cid;
var rendering = Mustache.to_html(template, itemObj);
this.el = rendering;
return this;
},
showPriceChange: function(event) {
alert('Changing...');
$('#' + elemId).empty();
$('#' + elemId).append(document.createTextNode('Changed'));
},
});
return ItemView;
});
atm.html:
<!DOCTYPE html>
<html>
<head>
<title>Elevator</title>
<script data-main="scripts/main" src="scripts/require-jquery.js"></script>
<style type="text/css">
</style>
</head>
<body>
<h1>Vending Machine</h1>
<div id="atm-items">
</div>
<script id="template-atm" type="html/template">
<li>
<p>Item: {{name}}</p>
<label for="price-{{cid}}">Price:</label>
<input id="price-{{cid}}" type="text" value="{{price}}"/>
<button class="button">Change</button>
<p id="status-{{name}}-{{cid}}">- -</p>
</li>
</script>
</body>
</html>
我認爲它做了一個帖子/提交時,當你點擊按鈕。這是按鈕的默認設置。嘗試添加'type =「按鈕」'並告訴我會發生什麼。 – Deeptechtons
沒有去:-(我改變了按鈕元素爲,但仍然沒有事件 – DaHoopster