Control deslizante de solo lectura de jQuery: ¿cómo hacerlo?

2 minutos de lectura

¿Cómo puedo tener un control deslizante jQuery que es de solo lectura? ¿Uno que mostraría un valor pero al usuario no se le permitiría moverlo?

Gracias

La documentación dice que hay un .slider('disable') función: no estoy seguro de qué le hace eso realmente al elemento deslizante en sí, pero esa puede ser una opción para usted.

Documentación aquí

  • Esto hace que el control deslizante desaparezca (no se represente).

    Nombre

    9 de junio de 2009 a las 14:26

  • Entonces, supongo que la forma más fácil de hacerlo sería colocar un elemento transparente encima del control deslizante (evitando así que el usuario lo mueva manualmente) y controlar su posición usando el atributo .value.

    – Brettkelly

    9 de junio de 2009 a las 14:31

  • Estoy usando jquery-ui-1.9.2 y .slider("disable") Funciona de maravilla. Disminuye la transparencia y deshabilita la capacidad de arrastre.

    – nthpixel

    17 de septiembre de 2013 a las 5:51

  • ¿Alguna forma de mantener la transparencia tal como está pero deshabilitar la capacidad de arrastre al mismo tiempo?

    – Tomás Sebastián

    9 oct 2014 a las 9:58

  • @ThomasSebastian intenta agregar $(".ui-slider-disabled.ui-state-disabled").removeClass("ui-state-disabled"); después de que lo llames.

    – Mood

    26 de febrero de 2019 a las 3:19


Probé todo lo sugerido. Solo esto funciona:

$('#mySlider').slider({ disabled: true });

Deshabilitarlo lo hace transparente. Si desea que se vea como un control deslizante normal, puede anular el controlador de diapositivas para que devuelva falso:

    $("#mySlider").on("slide", function (event, ui) { return false; });

  • Esto hace el trabajo.

    – Diego Sagrera

    17 de agosto de 2018 a las 18:20

Tengo el mismo problema de que el control deslizante desaparece si uso directamente $(‘#mySlider’).slider(‘disable’);. He cargado el control deslizante primero… luego lo deshabilité. Aunque no es una buena manera, pero funciona para mí.

$('#mySlider').slider(
            {
                range: "min",
                min: 0,
                max: 100,                
                value: $("span", this).text(), 

                }

            });
$('#mySlider').slider( 'disable');

Simplemente tendrías que hacer esto:

$('#mySlider').slider( 'disable' );

  • Esto hace que el control deslizante desaparezca (no se represente).

    Nombre

    9 de junio de 2009 a las 14:28

Avatar de usuario de Harry
Harry

$("#slider").slider("disable") funciona bien, sin embargo, la reactivación no funciona $("#slider").slider("enable")

  • Esto hace que el control deslizante desaparezca (no se represente).

    Nombre

    9 de junio de 2009 a las 14:28

Avatar de usuario de Ken
Conocido

Tuve una solicitud de cliente para esto hoy. Probablemente sea una buena idea hacer esto como una mejor práctica y evitar la entrada de cadenas.

Dado que el control deslizante establece el valor en una etiqueta , puede convertirlo en “solo lectura“.

<p>
  <label for="amount">Price range:</label>
  <input type="text" id="amount" style="border: 0; color: #f6931f; font-weight: bold;" readonly />
</p>

<div id="slider-range"></div>

Violín

  • Esto no es lo que pidió el OP. Quería que el control deslizante estuviera desactivado, que no es lo que muestra su ejemplo.

    – piero

    03/02/2015 a las 19:24

¿Ha sido útil esta solución?