【问题标题】:remove .each from jquery selector in coffeescript从coffeescript中的jquery选择器中删除.each
【发布时间】:2017-02-19 08:57:03
【问题描述】:

我下面有咖啡脚本,做远程ajax select2,这将设置所有类select2-autocomplete,问题是我想把这个脚本放在刚刚添加的一项上,我如何在下面修改这个脚本而不进行迭代每一个,

    $('.select2-autocomplete').each (i, e) ->
    select = $(e)
    options = 
      multiple: false
      width: "98%"
      placeholder: "Type Hotel name"
      minimumInputLength: 3
    options.ajax =
      url: select.data('source')
      dataType: 'json'
      type: "GET"
      quietMillis: 150
      # input untuk program
      data: (term) ->
        q: term
      results: (data) ->
        results: $.map(data, (item) ->
          text: item.name
          id: item.id
        )
    options.dropdownCssClass = 'bigdrop'
    select.select2 options 

下面是我的 HTML 代码,注意:因为我使用的是 select2 v.3.5.3 ajax,所以我使用的是隐藏字段(rails)

        <%= f.hidden_field :hotel_id, data: { source: search_name_hotels_path }, class: "select2-autocomplete", :value => "#{f.object.hotel_id unless f.object.new_record? || f.object.hotel_id.nil? }" %>

【问题讨论】:

  • 请分享你的html代码

标签: javascript jquery ruby-on-rails coffeescript


【解决方案1】:

创建一个小的 jQuery 插件,在调用时在元素上执行。

$.fn.enableAutocomplete = () ->
    select = this
    options = 
      multiple: false
      width: "98%"
      placeholder: "Type Hotel name"
      minimumInputLength: 3
    options.ajax =
      url: select.data('source')
      dataType: 'json'
      type: "GET"
      quietMillis: 150
      # input untuk program
      data: (term) ->
        q: term
      results: (data) ->
        results: $.map(data, (item) ->
          text: item.name
          id: item.id
        )
    options.dropdownCssClass = 'bigdrop'
    select.select2 options

并在您希望启用它的元素上调用它。如下所示

$('#selectElement').enableAutocomplete();

【讨论】:

  • 谢谢,您上面的评论帮助我解决了我的问题,虽然没有直接附加到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 2011-09-28
相关资源
最近更新 更多