1

同じページの 2 つの別々の検索フォームから 2 つの入力があります。1 つはdata-result-select-url属性を持ち、もう 1 つは属性を持ちません。

<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()plugin を呼び出すために使用するとmy_select2()、これは正常に機能します。「変更」イベントを受け取る入力は 1 つだけです。

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

しかし、jQuery の暗黙的な反復を使用して my_select2() を呼び出すと、両方の入力がイベントを受け取ります。

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

説明は何ですか?jQuery docを調べましeachたが、答えが見つかりませんでした。

4

0 に答える 0