Próbuję wywołać zdarzenie, gdy użytkownik przesunie suwak, a wartość zostanie zmieniona po zatrzymaniu przesuwania. Zgodnie z dokumentacją jQuery, zdarzenie change
byłoby idealne dla tego przypadku. Więc ja to wypróbowanie:Zdarzenie suwaka "zmiana" jQuery UI uruchamia się, nawet jeśli wartość się nie zmieniła
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Slider - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$("#slider").slider({
change:function() { alert("foo"); }
});
});
</script>
</head>
<body>
<div id="slider"></div>
</body>
</html>
Ja jednak zauważyć, że kiedy przeciągnij suwak w prawo i ponownie przeciągnąć go z powrotem do punktu wyjścia (początkową pozycję suwaka na stronie obciążenia), przy czym alarm wciąż strzela. Czy to jest błąd jQuery? Jeśli nie, jak to naprawić?
Działaj zgodnie z przeznaczeniem. Zmieniaj zdarzenia, gdy suwak zmieni wartość, więc po przesunięciu go po raz pierwszy wartość suwaka zmieniła się na nową wartość, więc po jej przesunięciu wartość zmieniła się ponownie. – Populus
Nie, mam na myśli to: przeciągnij w prawo, bez zwalniania go przywróć do pozycji wyjściowej (0). Teraz wydarzenie się kończy i masz wartość, w której byłeś, gdy zainicjowano przeciągnięcie. Więc dlaczego to jest wydarzenie "zmiany"? – SexyBeast
Zmiana() prawdopodobnie wyzwala wyłączenie pozycji panelu suwaka, a nie identyfikatora suwaka. – isherwood