0

在我的应用程序中,我正在使用jquery-ui滑块。用户可以将滑块的值从 1(月)更改为 60(月)。实际上1-60是几个月。根据 11 后的新要求,滑块的值应改为 1(年)、2(年)等。我关心的是以下问题,我可以拥有这种改变值测量的滑块吗?如果是,请举个例子。

这是我的来源。

$(".slider").slider({
        animate: true,
        range: "min",
        value: 1,
        min: 1,
        max: 60,
        step: 1
});
4

1 回答 1

2

虽然这不可能开箱即用,

我在这里为你做了一个工作小提琴http://jsfiddle.net/JFJKP/

HTML:

<div class="slider"></div>
<br/>
<div class='showAltValue'>Click to Show Alt Value</div>

JS:

$(".slider").slider({
    animate: true,
    range: "min",
    value: 1,
    min: 1,
    max: 60,
    altValue: 'Nothing Selected',
    step: 1,
    change: function (event, ui) {
        value = ui.value;
        years = Math.floor(value / 12);
        months = value % 12 // value modulus of 12 gives remainder

        if (years > 1) {
            yearString = 'years';
        } else {
            yearString = 'year';
        }

        if (months > 1 && months != 0) {
            monthString = 'months';
        } else {
            monthString = 'month';
        }
        // Now format the output.
        if (years == 0) {
            altValue = months + ' ' + monthString;
        } else {
            if (months == 0) {
                //dont' show months
                altValue = years + ' ' + yearString;
            } else {
                altValue = years + ' ' + yearString + ' ' + months + ' ' + monthString;
            }
        }
        // Now alert the altValue
        alert(altValue);
        // You can now use this as a label Value somewhere and even store it as a slider attribute as such
        $(event.target).slider("option", "altValue", altValue);
    }
});

$('.showAltValue').click(function () {
    alert($('.slider').slider("option", "altValue"));
});

这至少应该让你走上正确的轨道。

于 2013-10-28T11:39:45.793 回答