Chr*_*ele 5 javascript shortcut coffeescript
我的coffeescript中有很多循环遍历DOM元素集合,并执行更多jQuery.这些函数看起来像这样:
$('.iterable.object').each ->
$(@).doThis
$(@).doThat
## More complicated usage
$(@).jqueryPluginCall
x: $(@).data('attr1')
x: $(@).data('attr2')
## More complicated usage
$(@).children('ul.animateable').each ->
if $(@).data('animation') is "fancy"
$(@).animate fancy: animation
else
$(@).animate simple: animation
$(@).focus(
->
$(@).animate some: more
, ->
$(@).animate even: more
) ## Or however you do double callbacks
Run Code Online (Sandbox Code Playgroud)
我做了大约3个错别字$(@).一次又一次地进入's,这变得很痛苦.
没有快捷语法$(@)?输入有点痛苦,似乎是一种非常常见的语法.如果它@像自动函数调用者那样操作,那就太酷了,&doThis而不是像&.doThis.
编辑:我希望能够在jQuery加载后在javascript中定义一个别名,在调用时使用DOM元素进行响应&并链接到方法&doThis,而不是在每个循环的顶部以@bennedich建议的方式.
功能链如何:
$('.iterable.object').each ->
$(@)
.doThis()
.doThat()
Run Code Online (Sandbox Code Playgroud)
或者存储$(@)到变量:
$('.iterable.object').each ->
t = $(@)
t.doThis()
t.doThat()
Run Code Online (Sandbox Code Playgroud)
或两者的结合.我能想到的最后一件事是IDE片段,例如textmate会让你配置字母+ TAB替换为$(@).
| 归档时间: |
|
| 查看次数: |
4617 次 |
| 最近记录: |