我正在尝试创建一个自定义工具提示,该工具提示显示在 Kendo 滑块的拖动手柄内,并随着拖动手柄的移动而动态更新。
过去,我可以通过使用幻灯片功能更新自定义工具提示的文本,使用普通的 Kendo 来做到这一点,如下所示:
element.kendoSlider({
min: 0,
max: 100,
tooltip: { 'enabled': false },
slide: sliderOnSlide,
tickPlacement: 'none',
showButtons: false,
smallStep: 1,
largeStep: 1
});
var slider = element.data('kendoSlider');
slider.wrapper.find('.k-draghandle').empty().html('<span class="sliderTip">0%</span>');
function sliderOnSlide(e) {
$('.k-draghandle.draggerOn .sliderTip').empty().text(e.value.toString() + '%');
}
我想这可以通过 Knockout 更干净、更可靠地完成,但到目前为止我还没有成功。我试图通过使用 Knockout 自定义绑定处理程序来获取拖动句柄:
<input class="slider col" data-bind="kendoSlider: { value: currValue, enabled: enabled, min: 0, max: 100, tickPlacement: 'none', smallStep: 1 }, sliderTip: {}" />
var viewModel = function () {
this.currValue = ko.observable(0);
this.enabled = ko.observable(true);
this.width = ko.observable();
};
ko.bindingHandlers.sliderTip = {
init: function(element, valueAccessor) {
var dragger = $(element).closest('.k-slider').find('.k-draghandle');
dragger.empty().html('<span class="sliderTip">0%</span>');
}
};
ko.applyBindings(new viewModel());
我已经能够插入我的自定义工具提示,但它没有显示,我不知道如何让它动态更新。我试图将我的 sliderOnSlide 函数硬塞到 Kendo-Knockout 中的尝试没有成功。
很高兴在这方面得到一些帮助。这是我一直在试验的一个 JSFiddle,其中包含上面列出的代码和相应的 HTML/CSS:http: //jsfiddle.net/MontiDesign/DuZK3/17/