0

基本滑块,范围为 10-1000,每步之间有 20 个(10-30-50 等)。

我想要做的是,在最后一步(1000)的值之前添加/注入一个字符。

不是,它返回为“560 kr/h”或“400 kr/h”,这一切都很好。但是当在 1000 时,我希望它变成“>1000 kr/h”。

下面是我的设置。

HTML

<label for="value1" class="value">Mitt pris:</label>
<input type="text" id="value1" />kr/h
<div id="slider1"></div>

jQuery

$(function() {
    $( "#slider1" ).slider({
        value: 300,
        min: 10,
        max: 1000,
        step: 20,
        slide: function( event, ui ) {
            $( "#value1" ).val(ui.value );}
    });
        $( "#value1" ).val( $( "#slider1" ).slider( "value" ) );

});
4

2 回答 2

1

虽然还有其他方法可以做到这一点,if但设置值后的简单语句应该是您所需要的:

    slide: function( event, ui ) {
        $( "#value1" ).val(ui.value );
        if ($( "#value1" ).val == 1000) { $( "value1" ).val(">1000");} }

这是一种更简洁的方式,但可能更难阅读

    slide: function( event, ui ) {
        $( "#value1" ).val(ui.value == 1000 ? ">1000" : ui.value );}

实际上使这个 settor 成为一个函数是一个很好的设计,所以你可以在你设置的两个地方使用它value1

$(function() {
    var setValue = function(value) {
        $("#value1").val(value == 1000 ? ">1000" : value); };
    $( "#slider1" ).slider({
        value: 300,
        min: 10,
        max: 1000,
        step: 20,
        slide: function( event, ui ) {
            setValue(ui.value);}
    });
    setValue($( "#slider1" ).slider( "value" ) );
});
于 2013-03-08T16:36:03.490 回答
0

尝试:

$(function() {
    $( "#slider1" ).slider({
        value: 300,
        min: 10,
        max: 1000,
        step: 20,
        slide: function( event, ui ) {             
            $( "#value1" ).val(ui.value == 1000 ? '> 1000' : ui.value );
        }
    });
    $( "#value1" ).val( $( "#slider1" ).slider( "value" ) );
});

这是小提琴

于 2013-03-08T16:36:33.087 回答