javascript - 我可以触发 .ready() 的 Backbone 事件吗?

标签 javascript jquery backbone.js

我想在 View 呈现时触发 Backbone 事件。理想情况下,我会写这样的内容:

var DetailView = Backbone.View.extend({
    id: 'detailpage',
    events: {
        'ready document': '_bringSlideDown',
        'click .close-slideDown': '_closeSlideDown'
    },

一旦 View 加载完成,我就可以创建并调用 _bringSlideDown 函数。这不起作用 - 有更好的方法来调用此事件吗?

具体来说,我希望该事件仅运行一次,这就是为什么我不将其嵌套在渲染函数中的原因。我希望 View 能够多次渲染,但希望在解除绑定(bind)之前使用 Backbone 的 .off() 方法处理该事件一次。谢谢!

最佳答案

我想提三点。

  1. 首先,按照最佳实践,我执行 Backbone 代码,直到 DOM 准备好了,所以如果你遵循这个规则,你的主干 View 将是 DOM 就绪后执行(因此无法监听就绪事件)。
  2. 如果你想用 jQuery 监听 DOM 添加,你应该使用 插件如:https://github.com/brandonaaron/livequery
  3. 关于您的用例,不要监听 DOM,而是检查渲染 方法 if 是您第一次使用以下方式渲染 View 一面旗帜。

我会做这样的事情:

var YourView = Backbone.View.extend({

  _rendered : false,

  events : {
    'click .close-slideDown': '_closeSlideDown'
  },

  render: function(){
    //some render stuff
    if( !this._rendered ){
      this._rendered = true;
      this._bringSlideDown();
    } 
  }

});

基本上

关于javascript - 我可以触发 .ready() 的 Backbone 事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21345440/

相关文章:

javascript - 使用 JQuery 读取文本文件并存储在数据库中

javascript - 使用 jQuery 获取页面中不存在的类/id 的 css 属性

javascript - 难以定位按键来完成操作

javascript - Jquery:从文本节点获取文本

javascript - 如何将现有的 dom 元素绑定(bind)到 backbone collection view

javascript - 主干路由器工作不正常

javascript - 我不完全理解 JavaScript 线程

javascript - raphael/jquery中的javascript插件架构如何实现?

javascript - 如何在单击行时获取html表中第一列的值

Django rest 框架 - PUT 请求的身份验证错误