Che*_*rot 5 javascript raphael coffeescript
寻找一个常见问题的优雅解决方案:
我有一个订阅了几个事件的类,我希望处理程序是我的类中的实例方法,但也想获取事件上下文(为这种情况触发事件的元素).
我使用胖线语法进行方法定义但无法获取事件上下文.具体来说我正在使用raphael js,当在元素上订阅时,事件对象不包含元素,只有dom元素,所以没有事件上下文我将不得不通过它在文件里面的raphael id搜索元素,而我不喜欢它.
在这种情况下,最佳做法是什么?我正在每次订阅事件之前创建一个新的上下文对象,上下文包含实例引用和元素引用.
如果我理解正确,您希望在处理函数中保留对绑定和未绑定上下文的引用.您可以通过手动执行与胖箭头类似的操作来实现此目的:
class TheListenerObject
constructor: ->
context = @ # some people may call it `self`
@theHandlerMethod = () ->
referenceToTheListenerObjectInstance = context
referenceToTheUnboundContext = @
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |