【问题标题】:avoid duplicate code in coffeescript by named function通过命名函数避免咖啡脚本中的重复代码
【发布时间】:2015-12-06 01:55:56
【问题描述】:

我试图在 coffeescript 中声明一个函数,该函数在文档准备好和用户在搜索栏中输入内容时都会被调用。基本上,有时搜索栏会用一个值呈现,有时用户键入该值。我想仅在有文本时才显示“x”图标以清除搜索栏。我能弄清楚如何完成这项工作的唯一方法是编写相同的代码两次,一次在按键处理程序中,一次在文档准备就绪时:

$ -> 
    $('.clear-search').click ->
        $(this).prev('input').val('').focus();
        $('span.clear-search').hide()

    $('#query_raw_query').keypress ->
        if $('#query_raw_query').length > 0
            $('span.clear-search').show()
        else
            $('span.clear-search').hide()
        end

    if $('#query_raw_query').length > 0
        $('span.clear-search').show()
    else
        $('span.clear-search').hide()
    end

我真正想做的只是创建一个名为 check_empty 之类的函数,然后在两个地方都调用它,但我似乎无法让它工作。

感谢您的帮助。

【问题讨论】:

    标签: javascript jquery ruby-on-rails coffeescript


    【解决方案1】:
    $ -> 
        someFunctionName = ->
            if $('#query_raw_query').length > 0
                $('span.clear-search').show()
            else
                $('span.clear-search').hide()
            end
    
        $('.clear-search').click ->
            $(this).prev('input').val('').focus();
            $('span.clear-search').hide()
    
        $('#query_raw_query').keypress ->
            someFunctionName()
    
        someFunctionName()
    

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 2018-02-13
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2013-06-10
      • 2011-09-03
      • 2017-03-12
      相关资源
      最近更新 更多