我有一个选择控件,我有一个订阅。当我不应用剑道样式时,控件按预期工作,订阅代码触发一次并且不会重新触发 onBlur 或任何其他原因。当我确实应用了 kendoDropDownList 时,订阅的行为始终如一。
$("select").kendoDropDownList();
不稳定的行为是选择一个值,订阅触发。单击另一个控件,订阅事件再次触发并且值未定义,即使选择控件将值显示为未更改。随后的选择会按预期触发订阅。使用剑道时,在选择控件上使用向下/向上箭头也不会触发。
<select id="newExperienceFrequency" data-bind="value: frequency, options: $root.controls.frequencies, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Select', event: { mouseover: mouseoverFrequency, mouseout: mouseoffFrequency }" class="select frequencyTip" title="foo"></select>
self.proficiency.subscribe(function () {
self.proficiencyId = self.proficiency();
console.log('proficiency subscribed: ' + self.proficiency());
my.setCounterHint($("#newExperienceFrequency").val(), self.proficiency());
var tip = "Don't just list those skills your strongest in. It's just as important to add new skills you are aquiring!";
var result = $.grep(my.ajaxData.member.Proficiencies, function (e) { return e.Id == self.proficiency(); });
if (result.length == 0) {
// not found
} else if (result.length == 1) {
// access the foo property using result[0].foo
tip = result[0].Name + ':\nAutonomy: ' + result[0].Autonomy + '\nContext: ' + result[0].nContext + '\nKnowledge: ' + result[0].Knowledge + '\nWorkmanship: ' + result[0].Workmanship;
} else {
// multiple items found
}
$(".proficiencyTip").attr('title', tip).attr('alt', tip);
$(".proficiencyQuestionMark").fadeIn('slow');
});
这是一个已知问题,还是我只是做错了什么?我是否通过尝试将 Kendo 与 Knockout 一起使用来为自己做更多的工作?如果我只是使用剑道并放弃淘汰赛,这些问题会消失吗?