Javascript 是否可以为.ready()触发主干事件?

Javascript 是否可以为.ready()触发主干事件?,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我想在视图渲染后触发主干事件。理想情况下,我会这样写: var DetailView = Backbone.View.extend({ id: 'detailpage', events: { 'ready document': '_bringSlideDown', 'click .close-slideDown': '_closeSlideDown' }, var YourView = Backbone.View.extend({

我想在视图渲染后触发主干事件。理想情况下,我会这样写:

var DetailView = Backbone.View.extend({
    id: 'detailpage',
    events: {
        'ready document': '_bringSlideDown',
        'click .close-slideDown': '_closeSlideDown'
    },
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();
    } 
  }

});
一旦视图加载完毕,我就可以创建并调用一个
\u bringSlideDown
函数。这不起作用-有没有更好的方式来称呼此事件


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

我想提三点

  • 首先,根据最佳实践,我执行主干代码,直到DOM被删除 准备好了,所以如果您遵循此规则,您的主干视图将 在DOM就绪后执行(因此无法侦听就绪事件)
  • 如果您想通过jQuery监听DOM添加,应该使用 插件,如:
  • 关于您的用例,与其侦听DOM,不如检入渲染 方法if是第一次使用渲染视图 旗帜
  • 我会这样做:

    var DetailView = Backbone.View.extend({
        id: 'detailpage',
        events: {
            'ready document': '_bringSlideDown',
            'click .close-slideDown': '_closeSlideDown'
        },
    
    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();
        } 
      }
    
    });
    
    基本上