我正在使用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中,我试图点击这个函数来编写函数,我正在尝试发送一个ajax调用。
当我写的时候
$("a.follow").unbind('click').bind 'click', (event, data) ->
event.stopPropagation()
clickedEl = $(event.target)
console.log(clickedEl)
Console.log有时打印带有“ui-btn-text”类的span,有时会跨越“ui-btn-inner”。
但是在我的coffeescript函数中,我需要实际从标记中获取属性。如何继续这个
答案 0 :(得分:11)
您可以使用event.currentTarget
代替event.target
:
事件冒泡阶段中的当前DOM元素。
演示:http://jsfiddle.net/ambiguous/gdzUC/
附加了当前调用的jQuery事件处理程序的元素。
演示:http://jsfiddle.net/ambiguous/UhBWM/
您也可以使用closest
:
clickedEl = $(this).closest('a')
演示:http://jsfiddle.net/ambiguous/2LHp3/
event.target
值为:
发起事件的DOM元素。
换句话说,它实际上是被点击的东西。 currentTarget
和delegateTarget
将是事件绑定的内容。使用closest
对此可能有点过分,你通常会使用它来将DOM上升到一个容器,该容器包含你正在与之交互的几个项目。
答案 1 :(得分:-1)
您可以使用jQuery始终获取link元素,然后您可以参考如果您需要来自包含的跨度的信息。
...
clickedEl = $(event.target)
parentLink = clickedEl.parentsUntil $("a.follow")
console.log(parentLink)