同じページの 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
たが、答えが見つかりませんでした。