Mam suwak, który jest używany jako linia czasu w moim odtwarzaczu muzycznym. Minimalna wartość to 0, a maksymalna wartość to długość utworu (w sekundach). Co sekundę (robię to z timerem), suwak przesuwa się, a wartość jest ustawiona na bieżący czas. Ta linia kodu wygląda tak:Zdarzenie "zmiana" suwaka jQuery: Jak ustalić, kto to nazwał?
$("#sliderTime").slider("option", "value", document.sound.controls.currentPosition);
Użytkownik jest w stanie przesunąć/kliknij suwak i przejść do innego punktu w piosence, to jest przez wypalanie „grania (startPlayFromHere)” funkcja. Wygląda na to, że:
$("#sliderTime").slider({
...
change: function (event, ui) { play(ui.value) },
});
Problem polega na tym, że zarówno linia kodu w zegarze a użytkownikiem wzywają ten sam „change” wydarzenie suwaka, a użytkownik nie może przesunąć suwak.
Moje pytanie brzmi: jak ustalić, czy użytkownik wywołał zdarzenie zmiany, czy nie (co oznacza, że był to zegar)?
Mam nadzieję, że jest wystarczająco jasne, Dzięki!
Dzięki! Teraz mam inny problem: gdy użytkownik próbuje przesunąć, zegar nadal działa i przesuwa suwak. Czasami suwak powraca do pierwotnej pozycji i ignoruje rozmowę użytkownika. – eviabs
Nie ma czasu na zapisanie, ale można dołączyć obsługę "start" (patrz [dokumentacja] (http://jqueryui.com/demos/slider/)), aby podnieść flagę, która będzie blokować (z odpowiednią regulacją kodu timera) sterowanie timera suwakiem. Ponownie opuść flagę w procedurze 'change'. (Alternatywnie, zatrzymaj stoper, a następnie uruchom go ponownie). –