$(e.target)是<i> </i>而不是包含<div> ... </div>

时间:2016-11-09 04:22:35

标签: javascript jquery

我一直在研究一个检查数据操作的大脚本,现在我实现了一个悬停来显示一些图标;像这样:

<div class="Flag" data-action="mail-flag"><i class="fa fa-flag" aria-hidden="true"></i></div>

然而,由于内部没有纯文字而是图标,if ($(e.target).attr('data-action')) {不起作用,因为$(e.target)<i></i>

如果if ($(e.target).attr('data-action')) { <div>...</div>没有将data-action="mail-flag"添加到<i></i>,我怎样才能让local player = game.Players.LocalPlayer local Image = player.StarterGui.Fade.FadeImage local i = 0 --have i as a stopper for the repeat function, it tends to go over it. script.Parent.Door1.Touched:connect(function(hit) if hit.Humanoid ~= nil then Image.Visible = true repeat Image.Transparency = Image.Transparency - 0.1 i = i + 1 wait(0.1) until i == 10 end end) script.Parent.Door2.Touched:connect(function(hit) if hit.Humanoid ~= nil then Image.Visible = true repeat Image.Transparency = Image.Transparency - 0.1 i = i - 1 wait(0.1) until i == 0 end end) 工作?

2 个答案:

答案 0 :(得分:1)

您可以检查元素,然后检查其父元素。首先,检查是否

$(e.target).attr('data-action')

存在。如果没有,请使用

$(e.target).parents(".Flag").attr('data-action')

答案 1 :(得分:1)

您可以使用事件委派来访问属性值。

$('div[data-action]').on('mouseenter', 'i.fa', function(e){
    console.log($(e.delegateTarget).data('action'))
})