在backbone.js中获取动态事件ID
Get dynamic event ID in backbone.js
我是搞乱与backbone.js第一次,也是新的MVC..
这个示例代码创建了一个列表,每个列表都有一个锚,类为updateTotal。我可以成功调用updateVar函数使用click a.updateTotal':'updateVar'事件
我的问题是如何获得点击锚的ID ?在jQuery中,我通常使用$(this).attr("id");来获取被点击元素的ID。
谢谢!
我的代码…
(function($){
var Item = Backbone.Model.extend({
defaults: {
itemName: 'Item Name',
itemCount: 0
}
});
var List = Backbone.Collection.extend({
model: Item
});
var ListView = Backbone.View.extend({
el: $('body'), // attaches `this.el` to an existing element.
events: {
'click button#addItem': 'addItem',
'click a.updateTotal':'updateVar'
},
initialize: function(){
_.bindAll(this, 'render', 'addItem', 'appendItem', 'updateVar');
this.collection = new List();
this.collection.bind('add',this.appendItem);
this.collection.bind('updateVar',this.updateVar);
this.counter=0; //total added so far
this.render();
},
render: function(){
$(this.el).append('<button id="addItem">Add item</button>');
$(this.el).append('<ul></ul>');
_(this.collection.models).each(function(item){
appendItem(item);
}, this);
},
addItem: function(){
this.counter++;
var item = new Item();
item.set({
itemName: 'Item '+this.counter,
itemID: 'item'+this.counter
});
this.collection.add(item);
},
appendItem: function(item){
$('ul', this.el).append("<li>"+item.get('itemName')+" (<span id='""+item.get('itemID')+"-counter'">"+item.get('itemCount')+"</span>) <a class='"updateTotal'" id='"update-"+item.get('itemID')+"'">[update]</a></li>");
},
updateVar: function(){
//------------------------------------
//I want to get the ID to use here
//------------------------------------
}
});
// **listView instance**: Instantiate main app view.
var listView = new ListView();
})(jQuery);
events
在后台使用jquery。你可以为你的事件处理程序方法提供一个eventArgs
参数,并从中获得currentTarget
,就像任何其他jquery回调一样:
updateVar: function(e){
var clickedEl = $(e.currentTarget);
var id = clickedEl.attr("id");
}
相关文章:
- 设置多个观察程序以触发动态事件的角度替代解决方案 - 优化的观察者模式
- fullCalendar动态事件单击行为
- 基于淘汰中的条件的动态事件处理程序
- j查询动态事件处理程序错误
- 如何将动态函数绑定到动态事件
- 谷歌分析动态事件值.这段代码有什么问题
- 动态事件上的更改事件
- 动态事件处理程序
- jQuery不允许动态事件侦听器
- Javascript 事件发射器 |动态事件名称
- HTML 元素上的静态事件附件与动态事件附件
- Titanium Javascript:如何创建动态事件监听器
- 创建基于时间的动态事件(如建筑施工时间等)的最佳方式是什么
- 仅在上次创建的元素上工作的动态事件侦听器
- 创建动态事件到javascript日历
- JQuery不能使用.load处理动态事件
- 加载JavaScript文件和动态事件
- 在backbone.js中获取动态事件ID
- 如何为视图添加动态事件
- FullCalendar和多个动态事件源