5

私は Rails 3.2 に取り組んでおり、coffeescript も使用しています。アプリケーション内で jquery mobile を使用することに疑問があります。次のような html があります。

<a href="#" data-item=12 data-status=true class="follow">
  <span class="ui-btn-inner">
    <span class="ui-btn-text">
      Follow
    </span>
  </span>
</a>

私のcoffeescriptでは、このFollowのクリックで関数を書き込もうとしています.ajax呼び出しを送信しようとしています.

のように書いたとき

  $("a.follow").unbind('click').bind 'click', (event, data) ->
      event.stopPropagation()
      clickedEl = $(event.target)
      console.log(clickedEl)

Console.log は、クラス「ui-btn-text」のスパンと「ui-btn-inner」のスパンを時々出力します。

しかし、私の coffeescript function では、実際にタグから属性を取得する必要があります。これをどのように進めるか

4

2 に答える 2

11

event.currentTarget代わりに使用できますevent.target

イベント バブリング フェーズ内の現在の DOM 要素。

デモ: http://jsfiddle.net/ambiguous/gdzUC/

またはevent.delegateTarget:

現在呼び出されている jQuery イベント ハンドラーがアタッチされた要素。

デモ: http://jsfiddle.net/ambiguous/UhBWM/

次を使用することもできますclosest

clickedEl = $(this).closest('a')

デモ: http://jsfiddle.net/ambiguous/2LHp3/

event.target値は次のとおりです。

イベントを開始した DOM 要素。

つまり、実際にクリックされたものです。currentTargetandはdelegateTarget、イベントがバインドされるものになります。これを使用するclosestのはおそらくやり過ぎです。通常、それを使用して、操作しているいくつかのアイテムを保持するコンテナーにDOMを移動します。

于 2012-05-16T07:44:46.053 に答える
-1

jQuery を使用して常にリンク要素を取得できます。これにより、含まれているスパンからの情報が必要な場合に作業するための参照が得られます。

...
  clickedEl = $(event.target)
  parentLink = clickedEl.parentsUntil $("a.follow")
  console.log(parentLink)
于 2012-05-16T07:43:41.090 に答える