Ich versuche, ein Ereignis auszulösen, wenn ein Benutzer den Schieberegler verschiebt und der Wert geändert wird, wenn die Verschiebung stoppt. Laut den jQuery-Dokumenten wäre das Ereignis change
ideal für diesen Fall. Also ich versuche, dies aus:jQuery UI Schieberegler 'ändern' Ereignis wird ausgelöst, auch wenn Wert nicht geändert wurde
<!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>
Allerdings beobachte ich, dass, wenn ich ziehen Sie die Regler nach rechts und wieder ziehen Sie es zurück zum Ausgangspunkt (die Ausgangsposition des Schiebers auf Seite-Last), das Alarm brennt immer noch. Ist das ein jQuery-Fehler? Wenn nein, wie repariere ich das?
Arbeiten wie vorgesehen. Das Ereignis wird ausgelöst, wenn der Schieberegler den Wert ändert. Wenn Sie ihn zum ersten Mal verschoben haben, hat sich der Wert des Schiebereglers auf einen neuen Wert geändert. Wenn Sie ihn also zurückbewegten, hat sich der Wert erneut geändert. – Populus
Nein, was ich meine ist das: ziehe es nach rechts, ohne es loszulassen, bringe es zurück zur Anfangsposition (0). Jetzt ist das Ereignis abgeschlossen und Sie befinden sich auf dem Wert, an dem Sie sich befanden, als der Ziehvorgang eingeleitet wurde. Wie kommt es, dass dies ein Change-Event ist? – SexyBeast
Change() löst wahrscheinlich die Schiebereglerposition aus, nicht die Schieberegler-ID. – isherwood