jQuery中的CoffeeScript结合的Click事件(Binding click event

2019-09-17 06:42发布

我的工作轨道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,我想写这个后续的点击功能,我试图发送一个AJAX调用。

当我写的像

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

CONSOLE.LOG打印跨越带班“UI-BTN-文本”在时间和跨度“UI-BTN-内”的时代。

但在我的CoffeeScript功能,我需要真正从标签需要的属性。 如何进行这种

Answer 1:

您可以使用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元素。

换句话说,它是实际点击的事情。 该currentTargetdelegateTarget将是该事件被绑定到的东西。 使用closest可能是矫枉过正这一点,你平时使用的DOM上去保存你与交互的几个项目的容器。



Answer 2:

您可以使用jQuery总是链接元素,你再有一个参考的,如果你需要从所包含的跨度信息工作。

...
  clickedEl = $(event.target)
  parentLink = clickedEl.parentsUntil $("a.follow")
  console.log(parentLink)


文章来源: Binding click event in jquery coffeescript