Ich habe mehrere Eingaben auf meiner HTML-Ansicht, und ich möchte eine Funktionalität hinzufügen: Wenn Sie den Mauszeiger über eine Eingabe und Sie verwenden Maus scrollen, den Wert davon Eingabe ändert sich (wählt einen anderen Index von einem Array für Texteingaben aus oder erhöht den Wert für numerische Werte). Die Verwendung von event
Bindung ist nicht sehr ausreichend für mich, da ich verschiedene Viewmodels für diese Eingaben und verschiedene Einstellungen verwende, also dachte ich an einen Extender, der einen beobachtbaren Wert erweitert, aber ich weiß nicht wirklich, wie man Ereignisse anvisiert (mousescroll über ein Element) in diesem Extender. Ist Extender ein richtiger Weg zu gehen, oder soll ich stattdessen mit diesen event
Bindings auf der Seite bleiben?Ändern Sie den Wert der Eingabe auf Maus scrollen mit knockout.js
0
A
Antwort
1
Ich glaube, dass Custom-Binding-Handler ein Weg ist zu gehen. Die gesamte Kommunikation zwischen Modell und DOM sollte über Handler erfolgen. Extender sind nur die Möglichkeit, einer Observable zusätzliche Funktionalität hinzuzufügen. Hier ist ein Beispiel für eine solche Handler:
ko.bindingHandlers.wheel = {
init: function(element, valueAccessor) {
var value = valueAccessor();
var handler = function (e) {
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
value(value() + delta);
};
// IE9, Chrome, Safari, Opera
element.addEventListener("mousewheel", handler, false);
// Firefox
element.addEventListener("DOMMouseScroll", handler, false);
}
};
Verwandte Themen
- 1. Ändern Sie den Wert von div beim Scrollen
- 2. Knockout.js Wert vor ko.observable() ändern schreiben
- 3. Touch-Eingabe in Maus-/Tastatureingabe ändern
- 4. Mit der Maus scrollen Sie durch die Registerkarten in JTabbedPane
- 5. Knockout.js zurückgesetzt den Wert einer Auswahl zurück auf den Standardwert
- 6. Highmaps: So deaktivieren Sie Kartenzoom mit der Maus scrollen
- 7. ändern Sie den Stil der Eingabe Platzhalter mit Java-Skript
- 8. Ändern AngularJS Eingabe Text Wert mit Javascript
- 9. Horizontales Scrollen eines Div mit der Maus und berühren
- 10. Ändern Sie Expander Hintergrund auf Maus Hover
- 11. knockout.js mit optionsValue und Wert
- 12. Ändern Sie die Art der umgebenden Grenze auf Maus über
- 13. Verwenden Sie eine Maus für Nicht-Maus-Eingabe
- 14. Ändern der Randstärke auf Maus über UWP
- 15. Knockout.js Erweitern Wert Bindung mit Interceptor
- 16. Ändern Sie den Wert des Typs Bool mit der Zeichenfolge
- 17. Ändern Sie das Bild mit der Maus Hover
- 18. Ändern Sie den Wert der JSON-Zeichenfolge mit Ruby
- 19. So ändern Sie den Wert der Prüferskala mit C#
- 20. Wie verhindere ich das Scrollen mit den Pfeiltasten, aber NICHT mit der Maus?
- 21. Ändern Sie Scrollen Titel basierend auf der aktuellen Zeit
- 22. Ändern Sie den Wert der Texteingabe, wenn ungültig
- 23. TestUtils.Simulate.change aktualisiert den Wert der Eingabe nicht
- 24. Ändern Klasseneigenschaften auf Maus geben
- 25. Scrollen auf ios Gerät Finger Eingabe Tag
- 26. immer Wert feild mit knockout.js in PHP
- 27. Größe ändern oder scrollen Sie den Bildschirm auf Remote-Debugging auf Android mit Chrome
- 28. So stoppen Sie UITextView von oben scrollen bei der Eingabe
- 29. Setzen Sie den Fokus auf eine Eingabe innerhalb eines Bootstrap TabContent auf der Registerkarte ändern
- 30. Ändern Sie den Wert vieler Eingabefelder