我有一个模板助手,除了第一个元素之外我无法继续工作。在第一个元素上,一切都按预期完成。
Template.placecardsnot.events({
'change .browser-default': function(event) {
var selectedTable = $('.tablesassignments :selected').val();
var table = tables.findOne(selectedTable);
console.log(table.description);
placecards.update(this._id, {
$set: {
newtable: selectedTable, table: table.description
}
});
}
});
如何在此模板中使用.each?我似乎无法正确获得Meteor Jquery的情况。
我的HTML看起来像这样:
<template name="placecardsnot">
{{#each placecardnotassigned}}
<b> {{name}} </b>
<select class="browser-default tablesassignments" id="{{_id}}">
<option value="">Assign Table</option>
{{> tablenotassigned }}
</select>
{{/each}}
</template>
我有第二个模板,为每个选择选项生成下拉选项。
<template name="tablenotassigned">
{{#each table}}
<option class="optionvalue" value="{{_id}}">{{description}}</option>
{{/each}}
</template>
所有的说法和完成,我有大约20个下拉选项并拥有相同的类,每个都有一个唯一的ID(来自集合)。当我尝试更改第二个
时答案 0 :(得分:0)
这不起作用。您的jquery选择器将始终选择第一个元素。您需要使用event.target
首先在当前元素的DOM中查找子树。试试这个:
var selectedTable = $(even.target).find('.tablesassignments :selected').val();
或者您可以重新构建模板,并为each
的正文设置单独的模板。然后,您可以将事件处理程序附加到该模板,只需使用
var selectedTable = this.$('.tablesassignments :selected').val();