backbone事件绑定上下文this的使用

使用Backbone.js主要就是怎样将Backbone.Model,Backbone.Collection,Backbone.View三者进行组织起来,实现想要的业务逻辑。一个很核心的东西就是将Model跟View进行关联,Collection进行管理。在这个其中参数扮演一个重要的角色。

看一段简单的代码:


<style>
*{padding:0;margin:0}
</style>

<div id="wrap" class="wrap"></div>


 1 $(function(){
2 var Model=Backbone.Model.extend({
3 defaults:{
4 name:‘AA‘,
5 age:‘BB‘
6 }
7 })
8
9 var C=Backbone.Collection.extend({
10 model:Model
11 })
12
13 var c = new C()
14
15 var main = Backbone.View.extend({
16 el:‘div‘,
17 template:_.template($(‘#main‘).html()),
18 events:{
19 ‘click .btn‘:‘add‘,
20 ‘click #testCollection‘:‘submitData‘
21 },
22 initialize:function(){
23 this.render()
24 c.on(‘add‘,this.create,this) //在回调函数里,调用View 上面的函数的时候需要提供上下文,即第三个参数
25 },
26 render:function(){
27 $(‘#wrap‘).html(this.template())
28 },
29 add:function(){
30 var m=new Model()
31 c.add(m);
32 },
33 create:function(obj){ //通过collection的add事件触发
34 this.addItem(obj) //如果事件绑定时没有提供上下文参数会报错
35 },
36 addItem:function(obj){
37 var item = new Item({model:obj});
38 $("#items").append(item.render().el)
39 },
40 submitData:function(){
41 console.log(c.toJSON())
42 }
43 })
44
45 var Item=Backbone.View.extend({
46 tagName:‘li‘,
47 template:_.template($(‘#item‘).html()),
48 render:function(){
49 $(this.el).html(this.template(this.model.toJSON()));
50 return this;
51 }
52 })
53
54 var view = new main()
55 })


<script id="main" type="text/template">
<div style="width:300px;height:500;border:1px solid #ccc;margin:0 auto" >
<ul id="items"></ul>
<div><button class="btn">click btn</button><button id="testCollection">test collection</button></div>
</div>
</script>

<script id="item" type="text/template">
<span><%=name%></span>:<span><%=age%></span>
</script>

backbone事件绑定上下文this的使用

时间: 2024-10-09 03:21:56

backbone事件绑定上下文this的使用的相关文章

Backbone事件模块及其用法

事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说,它是Backbone的核心组成部分. 此外,事件模块的所有方法都挂在了全局的Backbone上,如果你的代码中需要用到自定义事件(实现观察者模式),可以直接使用它. 一.Events API 1.0之前只提供了三个基本方法 on/once/off/trigger,1.0开始增加了几个实用方法 li

JavaScript学习笔记(四)——js事件之事件绑定、兼容问题

事件捕获:事件从根节点开始,逐级到子节点,若节点绑定了事件动作,则执行动作,继续往下走. 事件冒泡:事件由子节点向跟节点派送,若节点绑定了事件动作,则执行动作,然后继续往上走. 一.怎么绑定事件和移除事件? 由于IE浏览器不支持事件捕获,只支持事件冒泡.因此,其他遵循标准的浏览器都使用W3C定义的函数绑定和移除,IE浏览器则自有一套执行规则.下面分别总结一下W3C和IE的绑定机制: 1.W3C下的事件绑定 添加事件 — addEventListener() 移除事件 — removeEventL

事件委托和JQ事件绑定总结

事件委托: 比喻:事件委托的事例在现实当中比比皆是.比如,有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签收,甚至代为付款.这种方案还有一个优势,那就是即使公司里来了新员工(不管多少),前台MM也会在收到寄给新员工的快递后核实并代为签收. 实现原理:我们知道,DOM在为页面中的每个元素分派事

jQuery事件绑定和委托实例

本文实例讲述了jQuery事件绑定和委托.分享给大家供大家参考.具体方法如下: jQuery事件的绑定和委托可以用多种方法实现,on()  . bind()  . live()  . delegate() ,还有one(). 有时我们可能会像下面这样绑定一个事件: 复制代码代码如下: $("#div1").click(function() {      alert("点击后触发");  }); 上面的事件绑定,我们可以通过多种方式去实现: 1. on() 复制代码代

完美的jquery事件绑定方法on()

在讲on()方法之前,我们先讲讲在on()方法出现前的那些事件绑定方法: .live() jQuery 1.3新增的live()方法,用法如下: $("#info_table td").live("click",function(){/*显示更多信息*/}); 这里的.live()方法会把click事件绑定到$(document)对象,而且只需要给$(document)绑定一次,然后就能够处理后续动态加载的单元格的单击事件.在接收到任何事件时,$(document)

Backbone事件管理——Backbone.Events模块API结构

模块Backbone.Events的事件管理是通过Backbone提供的Events API来实现的,该API在1.0版本之前仅仅提供了几个基本的方法,如on.off.trigger.once分别执行对事件的绑定.解除绑定.执行事件.执行一次事件的操作.从1.0版本以后,又添加了几个实用方法,如listenTo.listenToOnce.stopListening,分别执行添加一个事件的侦察对象.添加一个仅执行一次的事件侦察对象和移除已添加的事件侦察对象,其完整的结构如图3-1所示. Backb

Backbone事件模块源码分析

事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说,它是Backbone的核心组成部分. 此外,事件模块的所有方法都挂在了全局的Backbone上,如果你的代码中需要用到自定义事件(实现观察者模式),可以直接使用它. 所以很有必要一起来研究下Backbone.Events的源码,一来学习Backbone事件模块优秀的写法和思想,二来可以更好的灵活使

JavaScript的事件绑定及深入

事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定 (DOM2 级模型).现代事件绑定在传统绑定上提供了更强大更方便的功能. 一.传统事件绑定的问题传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用.先来看一下脚本模型,脚本模型将一个函数赋值给一个事件处理函数. var box = document.getElementById('box'); //获取元素 box.onclick = function () { //元素点击触发事件 alert('

jQuery 2.0.3 源码分析 事件绑定 - bind/live/delegate/on

转:http://www.cnblogs.com/aaronjs/p/3440647.html?winzoom=1 事件(Event)是JavaScript应用跳动的心脏,通过使用JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应 事件的基础就不重复讲解了,本来是定位源码分析实现的, 所以需要有一定的基础才行 为了下一步更好的理解内部的实现,所以首先得清楚的认识到事件接口的划分 网上资料遍地都是,但是作为一个jQuery系列的源码分析,我还是很有必要在重新