Backbone.View 的 setElement 不会移动事件侦听器
Backbone.View's setElement does not move the event listeners
这不是
关于嵌套视图的问题,我已经阅读了有关此的教程,但它们似乎不适用于我的问题。
所以:我有一个骨干视图,它render()
方法通过外部 npm 模块创建一个全新的独立元素。这并不理想,但比自己重写要快。在render()
内和实例化新元素之后,我调用this.setElement
将视图绑定到新创建的元素。到目前为止一切顺利,this.$el
已正确更新。
但是我已经定义了一个events
映射,其事件处理程序不会移动到新$el
。为什么?我做错了什么?
Ich创建了一个简化的要点:https://gist.github.com/4nduril/dab571e876b215e3786f
编辑:我已经将James Akwuh的小提琴编辑为类似于我的代码:https://jsfiddle.net/ztwz3e3o/您可以看到,我在事件侦听器中调用 render 方法。这个小提琴显然有效。所以我仍然不知道为什么我自己的代码没有。
我会继续挖掘。
猜你忘了调用render
函数。
检查工作 JSFiddle。
我已经
找到了它,我很抱歉没有提供足够的信息让大家找到我的错误。
处理程序函数,我尝试与之绑定
events: {
"click": "myHandler"
}
不是在视图本身中定义的(即在Backbone.View.extend()
-call中),而是在外部范围内定义。所以当我"click": "myHandler"
改为
"click": function () {
myHandler();
}
它就像一个魅力。
相关文章:
- 如何从画布上的某个移动事件中获取X和Y
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何在鼠标移动事件时更改图像的窗口中心和宽度
- 如何从QT调用滑块移动事件
- 将stopImmediatePropagation()应用于所有jQuery移动事件
- 鼠标移动事件导致无限循环,即使在鼠标移动停止后也是如此
- Javascript move 元素与鼠标移动事件 60 FPS 请求动画帧
- 鼠标移动事件在火狐中不起作用
- 用于加载动态 JSON 数据的 JQuery 移动事件
- 在 IE11 中,不会为文本框触发指针移动事件
- 在jQuery或Javascript中是否有办法确定触摸移动事件的速度
- 如何从 jQuery 触发鼠标移动事件
- 科尔多瓦 - “触摸移动”事件不会立即触发
- 当绑定到多个元素时,Firefox 中的缓慢鼠标移动事件
- Backbone.View 的 setElement 不会移动事件侦听器
- 全屏模式下的 JavaScript 鼠标移动事件
- 需要触摸设备在覆盖另一个元素时保持触摸移动事件触发
- FabricJS:对象:移动事件不会在用户选择多个对象时触发
- 带有 JSON 数据的 JavaScript Kendo 调度程序仅移动事件一次
- 由谷歌地图绘制的矩形 绘图管理器不会触发鼠标移动事件