我现在正在浏览排行榜示例,并且我已经完成了它,但我对添加功能的实现并不完全满意。
首先,我们有
Template.player.events({
'click': function () {
Session.set("selected_player", this._id);
}
});
我发现它与播放器集合的关联方式有点令人困惑this
,但我想这与<template
部件有关。我也能做到
Template.leaderboard.events({
'click input.delete': function () {
Players.remove(this._id);
}
...确实会删除带有相关按钮条目的播放器。
现在是实际问题部分:我已将其添加到排行榜模板的底部:
<div>
Add player: (Name <input required name="name" id="name">)
(Score <input required name="score" id="score">)
<input class="add" type="button" value="Add">
</div>
这工作正常,我Template.leaderboard.events['click input.delete']
工作正常,但为了获得我使用的值:
'click input.add': function () {
var name = document.getElementById('name').value,
score = document.getElementById('score').value;
如果我能够以this
某种方式使用,或者使用事件以某种方式获取与输入对应的值,这对我来说很有意义。从设计的角度来看,这不仅对我有意义,而且还涵盖了同时显示多个此类表单的情况。
所以简而言之,有没有办法在事件的上下文中获取靠近目标元素的元素?