首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在backbone.js中有条件的"添加"事件?

当然可以在backbone.js中有条件地添加事件。首先,我们需要了解backbone.js的事件绑定机制。在backbone.js中,可以使用on方法为对象绑定事件。例如,为视图绑定事件:

代码语言:javascript
复制
var MyView = Backbone.View.extend({
  events: {
    'click .button': 'onButtonClick'
  },

  onButtonClick: function(event) {
    // 处理按钮点击事件
  }
});

要根据条件添加事件,可以在视图的initialize方法中动态绑定事件。例如,根据某个条件condition,可以这样做:

代码语言:javascript
复制
var MyView = Backbone.View.extend({
  initialize: function() {
    if (condition) {
      this.on('click .button', this.onButtonClick);
    }
  },

  onButtonClick: function(event) {
    // 处理按钮点击事件
  }
});

在这个例子中,如果condition为真,则在视图上绑定click .button事件。如果condition为假,则不会绑定该事件。

当然,这只是一个简单的示例。您可以根据需要在initialize方法中添加更复杂的条件逻辑,以便根据不同条件添加不同的事件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Roslyn 分析语法树时添加条件编译符号支持

我们代码中会写 #if DEBUG 或者 [Conditional("DEBUG")] 来使用已经定义好条件编译符号。...而定义条件编译符号可以代码中使用 #define WALTERLV 来实现,也可以通过项目属性中设置条件编译符号(Conditional Compilation Symbols)来实现。...---- 如果你不知道条件编译符号是什么或者不知道怎么设置,请参见: .NET/C# 项目如何优雅地设置条件编译符号? 我们使用 Roslyn 分析语法树时,会创建语法树一个实例。...如果使用默认构造函数,那么就不会识别设置了条件编译符号语句,如下图: ? 而实际上构造函数参数中带有 preprocessorSymbols 参数,即预处理符号。...传入此预处理符号情况下,Roslyn 就可以识别此符号了: ?

95210

移动端touch事件影响click事件以及touchmove添加preventDefault导致页面无法滚动解决方法

地址:http://bbs.mb.qq.com/thread-201794-1-1.html 根据上面所说,touchstart中添加了event.preventDefault()方法,QQ和微信中果然正常了...之后我大胆推测了一下: 会不会是因为移动端click事件触发条件就是必须touchstart和touchend同时触发才能触发click呢?...原来touchmove中添加event.preventDefault方法之后会阻止浏览器默认滚动。。。...然后我打开了这个插件源码,终于touchmove中找到了答案 touchmove中有这样一段代码(下面是我自己抄过来简化过): var w = x<0?...总结一下: QQ和微信(当然还包括其他浏览器,不过我没测试过)中如果有需要用到touch事件特效一定要在touchstart或者touchmove中添加event.preventDefault()

3.3K20
  • 前端架构101:MVC不足与Flux崛起

    正文从这开始~~ MVC 不足 事件 在前几篇中,我演示了一个前端 Backbone.js MVC 框架用于解决实际问题例子。...但 MVC 依然存在几个问题 不可预测:当一个事件发生之后,你并不知道会有谁响应这个事件,是单个对象还是多个对象会响应这个事件 级联修改:当一个事件发生之后,A 组件接收到事件之后响应过程中,还可能发出其他事件触发后续修改...这也和上一条「不可预测」相对应 响应顺序:如果存在多个对象响应同一个事件的话,有时候对响应顺序是有要求,某些变更不可以出现在其他变更之前 有条件响应:对于传播方而言,并非希望所有的时间都一视同仁广播出去...如果我想重复使用一个 view 的话,我需要保证我页面模版里有相同 id 元素,又必须保证上下文中有相同 model 层提供相同借口或者广播相同事件。...正因为大家对 MVC 理解各不相同,甚至同一个框架内也没有推荐最佳实践,于是你会看到一个框架内解决一个问题不同实现。其中有一些方案是存在隐患,但是小规模应用内很难暴露出来。

    1.4K20

    用 jest 单元测试改善老旧 Backbone.js 项目

    对于这样既有项目,之前文章中也进行过分析,常常面临依赖不清、封装混乱,以及缺乏测试等问题;对之进行维护和新需求开发时,结合其本身特点, TDD 方式下进行渐进改善,而非推倒重来,无疑是个可行办法...Backbone.js / Require.js 技术栈回顾 Require.js 模块化 ? 首先说 Require.js,没有 webpack 日子里,这是最常见模块化管理工具。...其主要功能模块包括: Events:提供一系列事件绑定和触发等功能 Model: 对数据或状态转化、校验、计算派生值、提供访问控制等,也负责数据远程同步等,并有事件触发机制;作用类似于 MobX...、绑定事件视图组件 我们实际项目中,视图层同时支持了 Backbone.View 和早期 react@13,这也正体现了其灵活之处。...text 插件引入模板 Backbone.js + Require.js 测试中一个小问题是:页面或组件中一般会用 text.js 组件引入模板,其 ES6 形式为: import cardTmpl

    3.5K10

    C语言快学完了,但oj上题大部分做不出来,都是CSDN找,是不是很不正常?有没有办法改?

    至今还是有很多人觉得C语言依然是编程行业最基础东西,毕竟现在很多上了年龄的人在当时大学阶段初级入门编程语言就是用C语言,很多人心中都有个编程梦,有些甚至年过半百了还琢磨自己这辈子没有玩编程而遗憾...,也有很多上了年纪的人拿起C语言书籍一步步跟着网络上教材进行学习,随着编程语言国内普及,编程语言生态已经发生了很大变化,特别是高级语言普及化,倒是显得很多底层语言在编程领域影响力在下降,...但是其重要性还是加强,就拿C语言来讲是很多编程语言基础而存在,主流很多编程语言底层实现就是利用C语言或者汇编来完成,C语言在编程领域角色发生变化,早期一个很简单功能模块可能都需要C语言实现很长时间才能稳定...回到编程语言学习过程,编程语言学习最佳方式掌握一定理论基础上有项目实战,如果两种条件都是具备情况下可能几个月就能找到编程感觉,而大部分自学编程的人更多是在网络上找到自己觉得重要视频学习起来,并且通过...最好学习编程方式就是掌握一定理论基础上再去实践能够取得意想不到效果。 ?

    1.3K20

    1.初识backbone.js

    backbone.js,不知道作者是以什么样目的来对其命名,可能是希望这个库会成为web端开发中脊梁骨。 好了,八卦完了开始正题。...backbone.js提供了一套web开发框架,通过Models进行key-value绑定及custom事件处理,通过Collections提供一套丰富API用于枚举功能,通过Views来进行事件处理及与现有的...当界面上操作引起model中属性变化时,model会触发change事件;那些用来显示model状态views会接受到model触发change消息,进而发出对应响应,并且重新渲染新数据到界面...一个完整backbone应用中,你不需要写那些胶水代码来从DOM中通过特殊id来获取节点,或者手工更新HTML页面,因为model发生变化时,views会很简单进行自我更新。...查backbone资料时候,发现没有很系统中文入门资料和更多实例,所以我打算自己边学边写,争取能让大家通过一系列文章能快速用上backbone.js

    89620

    Backbone.js应用基础

    前言:   Backbone.js是一款JavaScript MVC应用框架,强制依赖于一个实用型js库underscore.js,非强制依赖于jquery;其主要组件有模型,视图,集合,路由;与后台交互主要是通过...Restful JSON 进行数据传输; 基础Backbone.js知识:   1、引入js文件:如果依赖于第三方类库如jquery,则最好先引入;之后引入underscore.js 这是必须引入且引入...   2、新建M.V.C:     Model对象表示数据模型,用于定义数据结构; View用于数据展示,绑定DOM事件和处理页面逻辑, Collection是管理数据模型集合,用于查找或保存数据...age'); //console.log(a+'==='+oa); }); }, myFun: function(){ //自定义事件...:    调用模型对象save方法是发送POST新建或PUT修改请求;fetch是调用GET方法;destroy方法是使用delete请求方式向服务器发送对象id,服务器做删除记录操作;    模型对象集合提供了

    65630

    6种技术将使您成为理想前端开发人员

    Javascript用于Web应用程序上创建和控制动态内容。Jquery用于加速Javascript任务。所有前端都从这些技能开始。 但仅有这些是还不能够设计出引人入胜网站。...Backbone.js由六个组件组成 - 模型,视图,集合,事件,路由器和同步。它还可以用于构建桌面和移动应用程序以及简单网站。...相比之下,Backbone.js主要缺点是速度慢,调试需要花费大量时间。总而言之,Backbone.js重量轻且易于使用。因此,它成为过去几年非常流行框架。...除了这些高级框架之外,掌握基础知识时,您应该学习以下框架。 5.CSS框架 Semantic UI,Foundation,Bootstrap,Pure,Skelton,这些都是最苛刻CSS框架。...添加其中一个或一些以使前端开发更具创造性。 6. CSS预处理器 预处理器有助于加快CSS编码速度。预处理器为CSS添加了额外功能,以保持CSS可扩展性和易用性。

    1.2K30

    一些前端框架比较(上)——GWT、AngularJS 和 Backbone.js

    Backbone.js Backbone.js 可能是我接触最早前端 MVC/MVVM 框架(那个时候写过一点点入门总结)。...如果属于写惯了 JQuery 之类绑定流,Backbone.js 是非常容易上手。...但是 Backbone.js 说了,它 Controller 是 Router,那好吧……)写着写着,有一种只手遮天感觉——什么东西它都知道,它都管,包括初始化、模板渲染、DOM 操纵、事件响应、绑定等等...对比 AngularJS 通过 DOM 属性方式来控制范围和绑定行为,Backbone.js 看起来更加容易理解, View 里面用 el 这个属性来建立和限定区域 DOM 树联系。...但是需要写比 AngularJS 多得多 JavaScript,尤其是其中事件响应代码,还有模板渲染代码,比较多时候,写起来并不愉快。

    1.8K10

    6、backbone中view实例

    Backboneview是用来显示你model中数据到页面的,同时它也可用来监听DOM上事件然后做出响应。...//此处添加下面的试验代码 })(jQuery); 1、一个简单view .. code:: javascript SearchView = Backbone.View.extend...运行页面之后,会发现script模板中html代码已经添加到了我们定义div中。...没错了,这个和django使用一样,可以模板中定义变量,然后通过字典方式传递进去 注意script模板变化 .. code:: javascript SearchView = Backbone.View.extend...总之,view主要应用就是绑定事件,处理业务,渲染页面。 前段时间不方便上网,一直看到有网友留言,来不及修改内容。不知道有木有被骂误人子弟,呜呜。。。

    63320

    【SLAM】开源 | PL-VINS:对VINS添加了直线特征约束条件保证实时前提下定位误差比VINS降低12%-16%

    SLAM (VINS)定位精度,正获得越来越多关注,因为它们对场景结构提供了额外约束条件。...然而,VINS中直接添加直线特征后,算法不能满足实时处理要求。本文基于当前最先进点特征VINS- mono算法,提出了一种可以达到实时优化融合线特征和点特征单目PL-VINS算法。...本文通过一个参数调优策略和长度抑制策略,提出了一种改进LSD算法。修改后LSD检测算法比原始算法速度提高了3倍。...此外,本文通过采用普吕克坐标(Plucker coordinates)表示空间直线,使用点到线距离进行建模表示系统估计残差,然后通过迭代更新普吕克坐标的下参数最小化残差项,求得最优匹配结果。...公共基准测试数据集中实验表明,相同位姿更新频率下,我们定位误差比VINS-Mono算法降低了12-16%。 主要框架及实验结果 ? ? ? ? ? ? ? ? ? ? ?

    1.8K50

    探索从 MVC 到 MVVM + Flux 架构模式转变

    但是 MVC 架构是好东西,其对数据、视图、逻辑有了清晰分工,于是前端 MVC 框架(比如 backbone.js) 出来了,对于很多业务规模不大场景,前端 MVC 框架已经够用了,它也能做到前后端分离开发单页面应用...拿 backbone.js 说,它 Model 对外暴露了 set 方法,也就是说可以不止一个 View 里修改同个 Model 数据,然后一个 Model 数据同时对应多个 View 呈现,...可以参阅之前写 MVVM 框架解析之双向绑定 only MVVM 假设有这么一个场景,输入框中查询条件,点击查询,然后列表中返回相应内容。如下图所示: ?...从 Flux 源码中可以看出 Dispacher.js 是其核心文件,其核心是基于事件发布/订阅模式完成,核心源码如下: class Dispatcher { ... // 注册回调函数...,所以再次引用事件发布/订阅模式,这次使用了 Node.js 提供 events 模块,对 commentStore.js 文件进行修改,修改后代码如下: let comments = [] const

    1.5K50

    一些前端框架比较(下)——Ember.js 和 React

    Ember.js Ember.js extend 写法很类似于 JQuery 或者是 Backbone.js,创建 Application,然后它下面创建相应 Model(Object)、Controller...事件方面使用 observes 方法并传入属性名来建立监听,其实和 Backbone.js 是差不多。...我拿它不知不觉地和 Backbone.js 比较,最初还是因为 API 长得像关系,后来才知道,其实这并不奇怪,因为核心开发人员 Tom Dale 说,灵感就是来自于 Cocoa、RoR 和 Backbone.js...说到状态,React 引入状态机机制,即通过事件监听来更新状态(setState),从而自动调用 render 来渲染组件方式,也实现了绑定。...传统 MVC 架构中(左图),分层清晰,但是存在一个缺陷是,如果有多个 view,它们都要和同一个 model 交互,之间关系错综复杂,于是一致性关系就很难处理,每添加一个 view,就要给每一个交互关系去增加一个逻辑去解决

    2.3K20

    这些改成中文名前端框架,你还能认识几个?

    Backbone.js是一套JavaScript框架与RESTful JSON应用程序接口。也是一套大致上匹配MVC架构编程范型。...Backbone.js以轻量为特色,只需依赖一套Javascript 库即可运行。常被用来开发单页互联网应用程序,以及用来维护网络应用程序各种部分(例如多用户与服务器端)同步。...Backbone.js是由Jeremy Ashkenas所开发,他同时也是CoffeeScript开发者。...Moment.js主要用于解析、检验、操作、以及显示日期,Moment.js可以很好IE8,9,Chrome,Safari,Firefox等浏览器中运行,当然也可以Node.js下运行。...它封装JavaScript常用功能代码,提供一种简便JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

    1.2K100

    这些改成中文名前端框架,你能认识几个?

    Backbone.js是一套JavaScript框架与RESTful JSON应用程序接口。也是一套大致上匹配MVC架构编程范型。...Backbone.js以轻量为特色,只需依赖一套Javascript 库即可运行。常被用来开发单页互联网应用程序,以及用来维护网络应用程序各种部分(例如多用户与服务器端)同步。...Backbone.js是由Jeremy Ashkenas所开发,他同时也是CoffeeScript开发者。...Moment.js主要用于解析、检验、操作、以及显示日期,Moment.js可以很好IE8,9,Chrome,Safari,Firefox等浏览器中运行,当然也可以Node.js下运行。...它封装JavaScript常用功能代码,提供一种简便JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

    1.2K20

    .NET 云原生架构师训练营(对象过程建模)--学习笔记

    ,浏览器点击和APP点击继承点击链接 事件链接 结构/过程链接之上添加 e 标注,代表是偶发 011.jpg Server 支持请求响应这件事情是偶发,并不是一直有的,所以可以加上e标注 行为控制...布尔对象 条件 if 或(OR)/ 与(XOR) 012.jpg 布尔对象:建立支持对象之上,但是会有一个判断,比如我们获取链接时候会有一个判断,如果没有链接则生成链接,有链接则返回 条件 if...:和事件链接相似,比如在链接状态有效时候创建分享关系,添加 c 标注,无效时候异常退出 或(OR)/ 与(XOR):或表示走一个或者多个都可以,亦或表示只能走一个,比如在是否有链接两个选项中间加两条弧线...,最简单方式就是根据是动词还是名词判断,以及根据过程有没有改变对象状态判断 复杂度管理 状态显示与状态隐藏 展开与折叠(放大与缩小) 端口折叠 状态显示与状态隐藏 人为控制是否要显示状态,比如链接状态...016.jpg 我们也可以多张图中进行缩放,比如获取链接放到第二个图中 017.jpg 端口折叠 019.jpg 比如在是否有链接条件 if 可以折叠起来,直接在外部通过两个端口有和无来和其他对象过程建立链接

    27900

    高质量编码-事件图层

    传统GIS项目中使用图层通常是从GIS服务器中发布WFSLayer或FeatureLayer服务,而这些GIS服务数据源多是从GIS软件中编辑完成后用于描述某一特定类别地理要素文件...但是对于像显示共享单车,航班,GPS等实时位置以及它们历史轨迹,或者显示最近10分钟哪些地点用户淘宝下单。对于它们,我分别称为位置图层,轨迹图层,以及事件图层。...通常GIS软件提供开发接口(比如专业Arcgis JS API)对于这些场景支持还不太丰富和成熟,Arcgis JS API 3.28 中提供了TemporalRenderer来featureLayer...image.png 先说一下实现这个功能契机,对于智慧城市相关类平台,我们可以创新地将营收,客服等业务实时数据基于事件图层接入到GIS平台。...image.png 接下来文章将分别介绍实现此功能前端GIS开发(Backbone.js实现观察者模式,GraphicsLayer实现缴费图层),前端交互开发(bootstrap-slider实现滑块

    63030
    领券