J'essaie de déclencher un événement lorsqu'un utilisateur fait glisser le curseur et la valeur est modifiée lorsque le curseur s'arrête. Selon la documentation jQuery, le change
event serait idéal pour ce cas. Donc j'essaye ceci:
<!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>
Cependant, j'observe que lorsque je déplace le curseur vers la droite et le ramène de nouveau au point de départ (la position initiale du curseur au chargement de la page), l'alerte est toujours déclenchée. Est-ce un bug de jQuery? Si non, comment puis-je résoudre ce problème?
$(function() {
$("#slider").slider();
var startPos = $("#slider").slider("value");,
endPos = '';
$("#slider").on("slidestop", function(event, ui) {
endPos = ui.value;
if (startPos != endPos) {
// do stuff
}
startPos = endPos;
});
});
Juste essayer.
$(function() {
$("#slider").slider({
slide: function(event, ui) {
// use ui.value to get a number
// do your functions
}
});
});