2015-09-25 56 views
0

在我的流星的應用程序,我有這個HTML:爲什麼'這'不符合我在我的Meteor事件中的預期?

<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(); 

。 ..但它不工作;然而,「本」在的jsfiddle測試用例工作得很好,像這樣:

$('#abler').click(function() { 
    var enableCount = 5; 
    $('.d1s1j1').attr('disabled', 'disabled').slice(0, enableCount).removeAttr('disabled'); 
}); 

那麼是什麼原因 - 這是不是這樣,或者是什麼呢?

+1

,什麼'this'是...你是比較蘋果和橘子 – charlietfl

+1

這取決於取決於函數如何'Template.tblScheduler.events({'的作品。將不得不等待,直到有人熟悉流星我猜。 –

回答

3

在Meteor中,事件處理函數中的this變量引用元素出現的數據上下文。在你的情況下,該元素位於{{#each}}手柄條助手中,所以this變量將引用workers數組中的單個元素。

如果您要訪問該事件使用jQuery發生的元素,你可以使用:

$(event.currentTarget).val(); 
1

你的事件應該是這樣的,如果你想獲得當前目標數據。

Template.tblScheduler.events({ 
    'change #date1Shift1JobLoc1Count': function(event) { 
    var enableCount = $(event.currentTarget).val(); 
    } 
}); 
相關問題