繁体   English   中英

迭代coffeescript中的jQuery DOM元素:$(@)。 捷径

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM