2016-04-23 62 views
3

的jQuery 2.2.3访问数据(“”)

我有元素的动态列表,即获得创建/在飞行中删除:

<ul id="tracks"> 
    <button class="createRace" data-trackcode="410243">Create Race</button> 
    <button class="createRace" data-trackcode="123540">Create Race</button> 
    ... 
</ul> 

我使用以下技术来对按钮点击作出反应。

$("#tracks").on("click", ".createRace", createRaceClick); 

createRaceClick()函数被调用,但“”对象引用#tracks,不被按下的button

如何确定哪个按钮被按下?或者更具体地说,我怎样才能得到与被按下的实际按钮相关联的data("trackcode")

感谢

回答

1

那么这是奇怪的,因为在事件代表团此背景下,this应参照button这是clicked。但是你可以使用event objecttarget属性来获取对引发点击event.createRace

$("#tracks").on("click", ".createRace", createRaceClick); 

function createRaceClick(e){ 

    var data=$(e.target).data('trackcode'); // $(this).data('trackcode') should work 
} 
+1

谢谢。这工作完美。我认为因为$(“#tracks”)附有“on”,那么这是传递给事件函数的上下文。 –