我是学习骨干的新手,在很多示例和问题答案中,我看到很多人只是在渲染函数中添加常规jQuery或javascript,而不是遵循骨干方式
events: { 'draggable #drag_this': 'drag' }, drag: function(){ // your jQuery draggable code }
我希望有人可以扩展这两种做事方式之间的区别,以及为什么人会优先于另一种方式,以及在哪种情况下。
答案 0 :(得分:3)
事件哈希自动使用委托,这是创建较少事件侦听器的可靠技术。
基本上这两种情况做同样的事情,但在render()函数中注册监听器是一种手动方式,而事件散列是一种声明性的方式。
如果你使用事件哈希,你可以调用this.delegateEvents(),它将使用你默认定义的事件哈希。 (如果从dom中删除视图并重新连接它,这很有用)
当我使用一个绑定它自己的监听器的库时,我个人在render()函数中使用手动事件绑定。(想想Twitter的bootstrap中的twipsy)。
如果适用于您的应用,则可以使用事件哈希值。它绝对是处理事件的“更多骨干”方式。
答案 1 :(得分:0)
我的理解是,当View被销毁时,不会删除手动添加的事件,如果您正在创建和销毁View,可能会导致“Zombie Views”和内存泄漏 - 除非您在销毁之前删除它们视图。例如。 $( '滑块')。滑动体( “破坏”)。