骨干中jquery的事件或函数

时间:2011-12-23 20:45:37

标签: jquery backbone.js

我是学习骨干的新手,在很多示例和问题答案中,我看到很多人只是在渲染函数中添加常规jQuery或javascript,而不是遵循骨干方式

events: {
   'draggable #drag_this': 'drag'
},

drag: function(){
   // your jQuery draggable code
}

我希望有人可以扩展这两种做事方式之间的区别,以及为什么人会优先于另一种方式,以及在哪种情况下。

2 个答案:

答案 0 :(得分:3)

事件哈希自动使用委托,这是创建较少事件侦听器的可靠技术。

基本上这两种情况做同样的事情,但在render()函数中注册监听器是一种手动方式,而事件散列是一种声明性的方式。

如果你使用事件哈希,你可以调用this.delegateEvents(),它将使用你默认定义的事件哈希。 (如果从dom中删除视图并重新连接它,这很有用)

当我使用一个绑定它自己的监听器的库时,我个人在render()函数中使用手动事件绑定。(想想Twitter的bootstrap中的twipsy)。

如果适用于您的应用,则可以使用事件哈希值。它绝对是处理事件的“更多骨干”方式。

答案 1 :(得分:0)

我的理解是,当View被销毁时,不会删除手动添加的事件,如果您正在创建和销毁View,可能会导致“Zombie Views”和内存泄漏 - 除非您在销毁之前删除它们视图。例如。 $( '滑块')。滑动体( “破坏”)。