`

backbone.js的View里的事件重复调用

阅读更多
   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的停止事件监听方法。

   如果一个视图是在闭包里完成的,如

  

     (function(){

       var View = Backbone.View.extend({
            'click #id':'btnClk'
          });

       var v = new View();
       v.render();

      })()
   

   
   这样的话,丢失了view的引用,这个事件就无法删除,在运行期间会一直有效。
分享到:
评论

相关推荐

    实例讲解JavaScript的Backbone.js框架中的View视图

    Backbone.js的View视图主要负责绑定和处理DOM事件,它还可以用来反映你应用程序中Model的模样。Backbone.js的视图不仅处理数据的显示,还要响应用户的交互事件。 在Backbone.js中,视图组件可以通过两种方式定义:...

    Backbone.js例子代码重构

    Backbone.js是一款轻量级的JavaScript库,专为构建复杂且结构化的Web应用而设计。它引入了模型-视图-控制器(MVC)的概念,帮助开发者更好地组织和管理前端代码。在这个“Backbone.js例子代码重构”的资源中,我们...

    实例讲解JavaScript的Backbone.js框架中的View视图_.docx

    Backbone.js允许你在View中添加事件监听器,以便对用户的交互行为做出响应。你可以通过 `events` 属性来添加这些监听器,但请注意,这些监听器只能添加到 `el` 属性的子元素上。 1. **添加事件监听器**: ```...

    实例讲解JavaScript的Backbone.js框架中的View视图.docx

    总的来说,Backbone.js的View视图提供了强大的功能,包括DOM元素绑定、事件处理、模板渲染等,使得在浏览器端构建复杂的JavaScript应用程序变得更为容易。理解并熟练运用这些概念对于开发高效、可维护的前端应用至关...

    Backbone.js框架中简单的View视图编写学习笔记.docx

    Backbone.js是一款轻量级的JavaScript库,它引入了MVC(Model-View-Controller)设计模式,使得前端开发更加有组织和结构化。在Backbone.js中,View是负责处理DOM交互和用户事件的核心组件。以下是对Backbone.js框架...

    实例讲解JavaScript的Backbone.js框架中的View视图.pdf

    在JavaScript的Backbone.js框架中,View视图是构建用户界面的关键组件,它负责与DOM交互,呈现数据模型(Model)的状态,并响应用户的交互。在本文中,我们将深入理解Backbone.View的工作原理以及如何利用它来创建...

    前端项目-backbone.modal.zip

    在前端开发领域,Backbone.js 是一款非常受欢迎的JavaScript库,它为构建复杂、结构化的Web应用提供了模型-视图-控制器(MVC)架构。Backbone.modal 是一个基于Backbone.js的插件,专为简化在应用程序中创建模态...

    前端项目-backbone.validation.zip

    在前端开发领域,Backbone.js 是一个非常受欢迎的JavaScript库,它为构建复杂的应用程序提供了一个轻量级的框架。Backbone.Validation 插件是针对Backbone.js设计的一个验证工具,用于帮助开发者轻松地实现对模型...

    前端项目-backbone.syphon.zip

    - **序列化**:通过调用`Backbone.Syphon.serialize()`方法,可以将表单元素的数据转换为JavaScript对象,方便进行验证、处理或发送到服务器。 - **反序列化**:利用`Backbone.Syphon.deserialize()`,可以将服务器...

    TODO-APP:使用Backbone.js开发ud989的项目

    5. **事件(Events)**:Backbone.js提供了一个事件系统,允许模型、视图和集合之间通过事件进行通信,降低了组件之间的耦合度。 **二、Backbone.js 实践** 在"TODO-APP-master"项目中,我们可以看到以下结构: 1...

    Backbone.js的Hello World程序实例.docx

    Backbone.js是一个轻量级的JavaScript库,它为构建结构化的Web应用提供了基础框架,包括模型(Models)、视图(Views)、集合(Collections)和路由器(Router)。在这个实例中,我们将看到如何整合Backbone.js与...

    前端项目-backbone.modelbinder.zip

    在前端开发领域,Backbone.js 是一款非常知名的轻量级框架,它提供了模型(Model)、视图(View)、集合(Collection)以及路由器(Router)等核心概念,帮助开发者构建结构化的Web应用。在这个名为 "前端项目-...

    前端项目-backbone.wreqr.zip

    1. **Backbone.js**:Backbone.js 是一个轻量级的JavaScript库,用于构建富客户端的Web应用。它提供模型层(Model)、视图(View)、集合(Collection)和路由器(Router)等概念,帮助开发者以更结构化的方式组织代码。 2....

    backbone教程

    Backbone.js是一个轻量级的JavaScript框架,主要提供了三大组件:models(模型)、collections(集合)和views(视图)。通过这三个组件,可以快速构建复杂的Web应用程序。 Models(模型) Backbone.Model是...

    简单了解Backbone.js的Model模型以及View视图的

    总结起来,Backbone.Model和Backbone.View在Backbone.js中扮演了关键角色,它们协同工作,使开发者能更好地组织和管理JavaScript应用的结构,实现数据和视图的解耦,提高代码的可维护性。通过理解并熟练运用这两个...

    详解Backbone.js框架中的模型Model与其集合collection

    // "coding"Backbone.js 中的 Model 和 CollectionBackbone.js 是一个轻量级的前端JavaScript框架,它的设计灵感来源于经典的MVC(Model-View-Controller)架构。在Backbone中,Model是数据和业务逻辑的核心,而...

    backbone.rar

    Backbone.js是一款轻量级的JavaScript库,专为构建复杂的前端应用而设计。它采用了Model-View-Controller(MVC)的设计模式,帮助开发者更好地组织和管理代码,提高开发效率。在“backbone.rar”这个压缩包中,我们...

    详解Backbone.js框架中的模型Model与其集合collection_.docx

    在Backbone.js框架中,模型(Model)是数据和业务逻辑的核心载体,它与传统的MVC(Model-View-Controller)架构中的模型概念相似。Model主要用于存储应用中的数据,包括但不限于用户输入、服务器响应的数据,同时也...

    深入解析Backbone.js框架的依赖库Underscore.js的作用

    在Backbone中,许多基础操作如模型(Model)的比较、视图(View)的事件处理等,都需要Underscore.js 提供的函数。虽然Backbone.js 可以与其他JavaScript库共存,但它依赖于Underscore.js 来处理页面元素和基本操作,而...

Global site tag (gtag.js) - Google Analytics