gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:51:19 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com