jQuery $()。each()和隐式迭代之间有什么区别?

时间:2013-04-09 08:25:47

标签: jquery each

我有两个来自同一页面的两个单独搜索表单的输入。一个具有data-result-select-url属性,一个没有。

<input id="q_id_eq" class="foo" type="text" size="30" name="q[id_eq]" data-result-select-url="/products/(id)" tabindex="-1"></input>

<input id="q_id_eq" class="foo" type="text" size="30" name="q[id_eq]" tabindex="-1"></input>

我为这些输入编写了自己的select2插件。

$ = jQuery
$.fn.my_select2 = (args) ->
  ...
  select_url = $(this).data("result-select-url")
  if select_url?
    $(this).on "change", (e) ->
      ...

  $(this).select2 args

当我使用$().each()来调用我的插件my_select2()时,这很好用。只有一个输入接收“已更改”事件。

jQuery
  $('.foo').each ->
    $(this).my_select2()

但如果我使用jQuery隐式迭代调用my_select2(),则两个输入都会接收该事件。

jQuery ->
  $('.foo').my_select2()

解释是什么?我查询jQuery doc each,但找不到答案。

0 个答案:

没有答案