基于js demo:http://jsfiddle.net/wfbY8/737/
user_product_order_id
从客户端代码中我使用它:
aws ecs register-task-definition --cli-input-json file://wordpress.json
我看到"添加"并且"删除"在我的日志上。但是对于我来说,元素仍然是可移动的(当我移动鼠标时没有按下它),好像我没有从监听器移除mousemove事件(在mouseUp上)。
我想知道为什么......
答案 0 :(得分:3)
这是因为您有效地将Scala函数(lambda)转换为add
和remove
的JS函数。在Scala.js中,Scala函数根据需要隐式转换到JS函数。但是,转换每次都会生成不同的JS函数(它没有相同的标识)。因此,您尝试删除的功能与您添加的功能不是相同,当然也没有效果。
您可以通过强制转换提前发生来解决此问题,然后添加和删除相同的功能。为此,只需在函数val
中添加一个显式类型作为JS函数:
val divMove: js.Function1[MouseEvent, Unit] = (e:MouseEvent) => {
...
}
这样,从Scala函数到JS函数的转换只发生一次,它与给add
- 和removeEventListener
的JS函数相同。