访问子元素内的父作用域's onclick回调(Atom包)
Access parent scope inside child element's onclick callback (Atom Package)
我不确定您通常应该如何在Atom包中处理这一问题,但现在的情况是:
我创建了一个漂亮的按钮
playButton = document.createElement('button');
playButton.onclick = @funkyFreshCallback;
这将调用我的回调,定义为so
funkyFreshCallback: (event, element) ->
console.log(@);
现在,我想要的是能够使用元素的父作用域。看到@符号了吗?现在它返回按钮元素(因为这是当前这个,我知道)
现在我该如何访问作用域?定义funkyFreshCallback的是同一个?
此外,我真的不觉得这是我应该做的事情,但我没有找到太多文档。。。完全
在将父上下文设置为事件处理程序之前,可以将其绑定到函数上。
playButton.onclick = @funkyFreshCallback.bind(@);
避免上下文问题的另一种方法是设置一个调用funkyFreshCallback
的函数。事件处理程序应该只处理事件,然后将所需的最小数据集传递给回调,如下所示:
playButton.onclick = (event, element) =>
timePressed = Date.now();
@funkyFreshCallback(timePressed);
使用上面的代码,funkyFreshCallback将使用您期望的上下文进行调用,并且不会接收到一个非常复杂的事件对象作为参数。这有助于为funkyFreshCallback
编写单元测试变得更容易,并且应该简化回调,因为它们不必处理事件。
可维护JavaScript第7章中的更多内容
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- jquery Onclick函数带有导致双击的回调排序函数
- 调用 js 函数和回调函数的 OnClick 事件
- 执行onclick回调后;选中'状态被重置
- 访问子元素内的父作用域's onclick回调(Atom包)
- 将回调函数传递到onclick事件中
- jQuery onClick多个回调函数
- 如何从Javascript中触发Button's OnClick事件在asp.net应用程序中使用回调
- 道场中节点的含义.连接(节点,onclick,回调)
- 如何在onclick中传递按钮到匿名回调函数
- 如何设置onClick元素后的回调函数