backbone的一个视图被初始化多次后,发现一个按钮事件的单击函数,被调用多次。
A视图初始化后,再初始化B视图,两个视图为同一个ID注册单击事件后,A视图和B视图里的
单击事件都会调用。
为了删除前一个视图注册的事件,使用jquery的unbind,使用jquery从dom里删除对应ID的dom元素,结果,再添加相同的ID,事件依然有效,两个视图的单击函数还在执行。
查看backbone的文档,视图在初始化时,使用jquery的On函数注册了事件,jquery
的on函数使用jquery内部的事件代理机制,将事件注册在jquery内部,而不是绑定在html的dom对象上,要移除事件,必须要使用与on函数注册事件时完全一致的选择符。通过backbone注册事件时,我们不知道具体的选择符是什么,所以也无法通过jquery去删除注册到jquery里的事件。
要终止事件,只能通过view.remove方法,移除view对象时,删除在jquery里注册的事件,或调用view的停止事件监听方法。
如果一个视图是在闭包里完成的,如
这样的话,丢失了view的引用,这个事件就无法删除,在运行期间会一直有效。
A视图初始化后,再初始化B视图,两个视图为同一个ID注册单击事件后,A视图和B视图里的
单击事件都会调用。
为了删除前一个视图注册的事件,使用jquery的unbind,使用jquery从dom里删除对应ID的dom元素,结果,再添加相同的ID,事件依然有效,两个视图的单击函数还在执行。
查看backbone的文档,视图在初始化时,使用jquery的On函数注册了事件,jquery
的on函数使用jquery内部的事件代理机制,将事件注册在jquery内部,而不是绑定在html的dom对象上,要移除事件,必须要使用与on函数注册事件时完全一致的选择符。通过backbone注册事件时,我们不知道具体的选择符是什么,所以也无法通过jquery去删除注册到jquery里的事件。
要终止事件,只能通过view.remove方法,移除view对象时,删除在jquery里注册的事件,或调用view的停止事件监听方法。
如果一个视图是在闭包里完成的,如
(function(){ var View = Backbone.View.extend({ 'click #id':'btnClk' }); var v = new View(); v.render(); })()
这样的话,丢失了view的引用,这个事件就无法删除,在运行期间会一直有效。
发表评论
-
解决eclipse在修改js卡顿现象
2018-02-09 15:49 1406新版eclipse编辑含有javascript内容的jsp时, ... -
chosen 数据的动态更新
2016-09-08 15:28 1772chosen是个不错的复合下拉组件,缺点是文档较少 源码在gi ... -
优秀的弹层组件
2016-04-20 18:19 675http://layer.layui.com/ -
googleapis.com域名访问慢的解决办法
2016-04-13 12:09 9811、安装火狐 2、安装插件ReplaceGoogleCDN -
国内常用前端公共库CDN服务
2015-11-15 14:00 968BAIDU http://cdn.code.baidu.co ... -
jquery validate 1.14
2015-10-12 20:14 799<!DOCTYPE html PUB ... -
jquery 事件处理handler函数的参数
2015-02-08 23:22 2588jquery 事件处理handler函 ... -
jquery tr rowindex
2014-11-30 13:42 928var tr = $(this).parents('tr' ... -
jqgrid please select row warning
2014-11-23 19:42 1750引入ui.jqgrid.css即可解决 -
改变多个jquery.ready的默认顺序
2014-11-23 15:37 1303$(document).ready 这个函数的解释: 引用 D ... -
javascript 错误的继承方式
2014-11-02 23:02 730var parent = {t:1,m:2,} pare ... -
JS图片格式验证
2014-07-03 16:48 934function pic(file){ var r ... -
更改underscorejs默认的匹配符
2014-06-14 11:51 875/** 修改underscore.js默认的< ... -
uglifyjs批量压缩js
2014-06-13 16:34 2439jquery官方使用uglifyjs进行压缩的,压缩比较高 ... -
html5 canvas作的手写板【兼容手机】
2014-05-21 15:56 5294<!DOCTYPE html> <ht ... -
backbone.js model和view视图的单元测试
2014-05-20 17:32 1364backbone的模块化开发,需要引入测试流程保证代码的质量, ... -
由正则表达式html或xml标签配对说起【括号编组和正负向预查】
2014-05-15 14:17 2479经常会查找xml或HTM ... -
netbeans和karma进行单元测试二【jasmine入门】
2014-05-20 15:43 1696karma配好之后,默认使用的是jasmine作为测试框架: ... -
javascript的代理和切面
2014-05-15 13:39 745Java里有面向切面的实现方式,可以监控包、对象、函数 ... -
backbone.js路由Router的使用
2014-05-09 11:33 1587路由的使用很简单,路由的转向 router.navigate( ...
相关推荐
Backbone.js的View视图主要负责绑定和处理DOM事件,它还可以用来反映你应用程序中Model的模样。Backbone.js的视图不仅处理数据的显示,还要响应用户的交互事件。 在Backbone.js中,视图组件可以通过两种方式定义:...
Backbone.js是一款轻量级的JavaScript库,专为构建复杂且结构化的Web应用而设计。它引入了模型-视图-控制器(MVC)的概念,帮助开发者更好地组织和管理前端代码。在这个“Backbone.js例子代码重构”的资源中,我们...
Backbone.js允许你在View中添加事件监听器,以便对用户的交互行为做出响应。你可以通过 `events` 属性来添加这些监听器,但请注意,这些监听器只能添加到 `el` 属性的子元素上。 1. **添加事件监听器**: ```...
总的来说,Backbone.js的View视图提供了强大的功能,包括DOM元素绑定、事件处理、模板渲染等,使得在浏览器端构建复杂的JavaScript应用程序变得更为容易。理解并熟练运用这些概念对于开发高效、可维护的前端应用至关...
Backbone.js是一款轻量级的JavaScript库,它引入了MVC(Model-View-Controller)设计模式,使得前端开发更加有组织和结构化。在Backbone.js中,View是负责处理DOM交互和用户事件的核心组件。以下是对Backbone.js框架...
在JavaScript的Backbone.js框架中,View视图是构建用户界面的关键组件,它负责与DOM交互,呈现数据模型(Model)的状态,并响应用户的交互。在本文中,我们将深入理解Backbone.View的工作原理以及如何利用它来创建...
在前端开发领域,Backbone.js 是一款非常受欢迎的JavaScript库,它为构建复杂、结构化的Web应用提供了模型-视图-控制器(MVC)架构。Backbone.modal 是一个基于Backbone.js的插件,专为简化在应用程序中创建模态...
在前端开发领域,Backbone.js 是一个非常受欢迎的JavaScript库,它为构建复杂的应用程序提供了一个轻量级的框架。Backbone.Validation 插件是针对Backbone.js设计的一个验证工具,用于帮助开发者轻松地实现对模型...
- **序列化**:通过调用`Backbone.Syphon.serialize()`方法,可以将表单元素的数据转换为JavaScript对象,方便进行验证、处理或发送到服务器。 - **反序列化**:利用`Backbone.Syphon.deserialize()`,可以将服务器...
5. **事件(Events)**:Backbone.js提供了一个事件系统,允许模型、视图和集合之间通过事件进行通信,降低了组件之间的耦合度。 **二、Backbone.js 实践** 在"TODO-APP-master"项目中,我们可以看到以下结构: 1...
Backbone.js是一个轻量级的JavaScript库,它为构建结构化的Web应用提供了基础框架,包括模型(Models)、视图(Views)、集合(Collections)和路由器(Router)。在这个实例中,我们将看到如何整合Backbone.js与...
在前端开发领域,Backbone.js 是一款非常知名的轻量级框架,它提供了模型(Model)、视图(View)、集合(Collection)以及路由器(Router)等核心概念,帮助开发者构建结构化的Web应用。在这个名为 "前端项目-...
1. **Backbone.js**:Backbone.js 是一个轻量级的JavaScript库,用于构建富客户端的Web应用。它提供模型层(Model)、视图(View)、集合(Collection)和路由器(Router)等概念,帮助开发者以更结构化的方式组织代码。 2....
Backbone.js是一个轻量级的JavaScript框架,主要提供了三大组件:models(模型)、collections(集合)和views(视图)。通过这三个组件,可以快速构建复杂的Web应用程序。 Models(模型) Backbone.Model是...
总结起来,Backbone.Model和Backbone.View在Backbone.js中扮演了关键角色,它们协同工作,使开发者能更好地组织和管理JavaScript应用的结构,实现数据和视图的解耦,提高代码的可维护性。通过理解并熟练运用这两个...
// "coding"Backbone.js 中的 Model 和 CollectionBackbone.js 是一个轻量级的前端JavaScript框架,它的设计灵感来源于经典的MVC(Model-View-Controller)架构。在Backbone中,Model是数据和业务逻辑的核心,而...
Backbone.js是一款轻量级的JavaScript库,专为构建复杂的前端应用而设计。它采用了Model-View-Controller(MVC)的设计模式,帮助开发者更好地组织和管理代码,提高开发效率。在“backbone.rar”这个压缩包中,我们...
在Backbone.js框架中,模型(Model)是数据和业务逻辑的核心载体,它与传统的MVC(Model-View-Controller)架构中的模型概念相似。Model主要用于存储应用中的数据,包括但不限于用户输入、服务器响应的数据,同时也...
在Backbone中,许多基础操作如模型(Model)的比较、视图(View)的事件处理等,都需要Underscore.js 提供的函数。虽然Backbone.js 可以与其他JavaScript库共存,但它依赖于Underscore.js 来处理页面元素和基本操作,而...