[英]Iterating over jQuery DOM elements in coffeescript: $(@). shortcut
我的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
而不是&.doThis
。
编辑:我希望能够在jQuery加载后在javascript中定义一个别名,在调用时使用DOM元素进行响应&
并链接到方法&doThis
,而不是在每个循环的顶部以@bennedich建议的方式。
功能链如何:
$('.iterable.object').each ->
$(@)
.doThis()
.doThat()
或者将$(@)
存储到变量中:
$('.iterable.object').each ->
t = $(@)
t.doThis()
t.doThat()
或两者的结合。 我能想到的最后一件事是IDE片段,例如textmate会让你将字母+ TAB配置为$(@)
替换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.