单击锚标记内的glyphicons时无法访问锚标记数据

时间:2015-01-25 10:28:52

标签: javascript jquery html css twitter-bootstrap-3

当锚标记中只有一个glyphicon时,如何获取数据?以下是问题的演示...

http://jsfiddle.net/sua0yp4y/2/

HTML:

<h1 id="output1">OUTPUT1</h1>
<h1 id="output2">OUTPUT2</h1>
<a class="withIcon" href="#" data-taskid="1123" data-userid="5813"><span class="glyphicon glyphicon-time"></span></a>

<h1 id="output3">OUTPUT3</h1>
<h1 id="output4">OUTPUT4</h1>
<a class="withoutIcon" href="#" data-taskid="1123" data-userid="5813">without icon</a>

JS:

$('body').on('click','a.withIcon',function(e){
    e.preventDefault();
    $("h1#output1").text($(e.target).data('userid'));
    $("h1#output2").text($(e.target).data('taskid'));
});

$('body').on('click','a.withoutIcon',function(e){
    e.preventDefault();
    $("h1#output3").text($(e.target).data('userid'));
    $("h1#output4").text($(e.target).data('taskid'));
});

4 个答案:

答案 0 :(得分:1)

添加最近的('a')以找到最近的锚标记并获取数据值:

$("h1#output1").text($(e.target).closest('a').data('userid'));
    $("h1#output2").text($(e.target).closest('a').data('taskid'));

http://jsfiddle.net/sua0yp4y/3/

答案 1 :(得分:1)

用户点击图片即可更改活动:

$('body').on('click','.glyphicon',function(e){
    e.preventDefault();
    $("h1#output1").text($(e.target).parent().data('userid'));
    $("h1#output2").text($(e.target).parent().data('taskid'));
});

fiddle

答案 2 :(得分:1)

使用this代替e.target来引用您点击的元素。更新小提琴 - http://jsfiddle.net/sua0yp4y/5/

$('body').on('click','a.withIcon',function(e){
    e.preventDefault();
    $("h1#output1").text($(this).data('userid'));
    $("h1#output2").text($(this).data('taskid'));
});

$('body').on('click','a.withoutIcon',function(e){
    e.preventDefault();
    $("h1#output3").text($(this).data('userid'));
    $("h1#output4").text($(this).data('taskid'));
});

答案 3 :(得分:1)

用$(this)替换$(e.target)你的问题得到解决。

demo http://jsfiddle.net/sua0yp4y/8/