在我的Meteor应用程序中,我有这个HTML:
<select class="trabajar d1s1j1" id="d1s1w1" name="d1s1w1" disabled>
<option value="nothing">select someone</option>
{{#each workers}}
<option value={{w_emailaddr}}>{{w_firstname}} {{w_middlename}} {{w_lastname}} {{w_namesuffix}}</option>
{{/each}}
</select>
...和这个jQuery:
Template.tblScheduler.events({
'change #date1Shift1JobLoc1Count': function(event) {
var enableCount = $('#date1Shift1JobLoc1Count').val();
$('.d1s1j1').attr('disabled', 'disabled').slice(0, enableCount ).removeAttr('disabled');
}
});
我首先尝试使用:
var enableCount = $(this).val();
而不是:
var enableCount = $('#date1Shift1JobLoc1Count').val();
......但它不起作用;然而,&#34;这个&#34;在像这样的jsfiddle测试用例中工作得很好:
$('#abler').click(function () {
var enableCount = 5;
$('.d1s1j1').attr('disabled', 'disabled').slice(0, enableCount).removeAttr('disabled');
});
所以给出了什么 - 这不是这个,或者这是什么?
答案 0 :(得分:3)
在Meteor中,事件处理程序中的this
变量引用元素出现的数据上下文。在您的情况下,元素位于{{#each}}
手柄帮助器中,因此this
变量将引用workers
数组的单个元素。
如果要使用jQuery访问发生事件的元素,可以使用:
$(event.currentTarget).val();
答案 1 :(得分:1)
如果您想获取当前目标数据,您的活动应如下所示。
Template.tblScheduler.events({
'change #date1Shift1JobLoc1Count': function(event) {
var enableCount = $(event.currentTarget).val();
}
});