我的 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
我在输入 $(@).
时犯了大约 3 个错别字,这让我很痛苦。
$(@)
没有快捷语法吗?打字有点麻烦,而且似乎是一种很常见的语法。如果它像 @
一样作为自动函数调用程序运行,那就太棒了,比如 &doThis
而不是 &.doThis
。
编辑:
我希望能够在 jQuery 加载后在 javascript 中定义一个别名,该别名在调用 &
时响应 DOM 元素并链接到方法 &doThis
,而不是在按照@bennedich 在下面建议的方式在每个循环的顶部。
最佳答案
函数链如何:
$('.iterable.object').each ->
$(@)
.doThis()
.doThat()
或者将$(@)
存储到一个变量中:
$('.iterable.object').each ->
t = $(@)
t.doThis()
t.doThat()
或者两者的结合。我能想到的最后一件事是 IDE 片段,例如textmate 会让你配置 letter+TAB 替换为 $(@)
。
关于javascript - 遍历 coffeescript : $(@). 快捷方式中的 jQuery DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852190/