javascript - 遍历 coffeescript : $(@). 快捷方式中的 jQuery DOM 元素

标签 javascript 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

编辑: 我希望能够在 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/

相关文章:

java - BASH 脚本将值输入 Java 扫描器

javascript - 运行跨多个 grunt.js 文件配置的任务

PHP 还是 JS 模板引擎? (对于同一 html 的多个 block )

javascript - Rails 动态表单提交。请求中json格式不正确

javascript - 在 CoffeeScript 中的命名函数中看不到匿名函数

sublimetext2 - 标签和元素快捷方式 - Sublime Text 2

javascript - 如何根据新的情节更新 Highstock/Highcharts 中的当前 View ?

javascript - 重复在 2D Canvas 上绘制图案的方法

javascript - 在 CoffeeScript 构造函数中调用时,jQuery 无法将事件处理程序附加到对象

python - 使用 Python 3.7.1 在 Windows 10 中创建快捷方式文件