evento deslizante de jQuery Mobile

Desarrollo de una aplicación web móvil con:

  • jQuery 1.7.1
  • jquery-móvil 1.1.1
  • Rails 3.2.1

Aquí, tenía la intención de cambiar el contenido del indicador de tiempo (<span id="wake_up_time_display">) a medida que cambia el valor del control deslizante.

El seguimiento funciona cuando se llama directamente a la URL de destino.

Pero en muchas ocasiones cuando jQuery mobile muestra <div data-role="page">, el indicador permanece sin cambios. (El valor del propio control deslizante cambia).

<label class="select" for="daily_record_wakeup_time">
    I'll wake up at: 
</label>
<span id="wake_up_time_display"> 6:00</span>
<input data-theme="e" data-track-theme="d" id="daily_record_wakeup_time" 
       max="480" min="240" name="daily_record[wakeup_time]" step="15" 
       type="range" value="360" />

<script>
    $("input[id='daily_record_wakeup_time']").live ("slidercreate", function () {
        $("input[id='daily_record_wakeup_time']").bind ("change", function (event) {
            $("#wake_up_time_display").text(Math.floor($(this).val() / 60) +
                    ":"+($(this).val() % 60 < 10 ? "0":"")+$(this).val() % 60);
        });
    });
</script>

preguntado el 28 de julio de 12 a las 06:07

1 Respuestas

¿Por qué no usas el selector CSS para ello?

$("#daily_record_wakeup_time")

en lugar de pasar el ID como un atributo? Además, si pudiera evitar el uso del método "en vivo" y en su lugar usar "delegado", sería genial. jQuery ya ha obsoleto este método, ya no es compatible con las versiones más nuevas. Asegúrese de tener el evento personalizado "slidercreate" en algún lugar de sus bibliotecas.

Respondido 28 Jul 12, 07:07

Funcionó con el evento ".on()" y "pageinit". $(document).on("pageinit", function(e) { $("#user_target_wakeup_time").on("change", function(e) { $("span#wake_up_time_display").text(Math.floor($(this).val() / 60)+":"+($(this).val() % 60 < 10 ? "0":"")+$(this).val() % 60); }); }); - umio

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.