Ich verwende Knockout als Hauptrahmen in meiner Anwendung und es muss Tabletten und mobile Geräte unterstützen. Da das Framework auf bindenden Handlern aufgebaut ist, frage ich mich, wie kann die benutzerdefinierte Bindung an Aktionen (wie Swipe und andere gerätespezifische) erreicht werden, oder vielleicht wird so etwas getan?Swipe-Aktion Bindung in knockoutjs
Antwort
Wahrscheinlich zu spät, aber hier ist eine Bibliothek, die Touch-Bindung an knockoutjs ergänzt: https://github.com/yaroslavya/knockouch
+1 danke, tolle Bibliothek. Diese Antwort sollte akzeptiert werden – amin
Es gibt keine integrierten Bindungen für bestimmte Frameworks, da knockout.js keine Abhängigkeiten zu anderen Frameworks aufweist. Es sollte eine triviale Aufgabe sein, Ihren jQuery-Selektor-Code in bindende Handler zu konvertieren, die den oben angegebenen Link @niko-Verweise verwenden.
Ich weiß nicht, ob es noch hilft, aber hier ist ein Zeiger.
- Verwenden Sie eine Bibliothek wie Hammer.js, um Multi-Touch-Aktionen zu erhalten.
- Schreiben Sie einen benutzerdefinierten Bindungshandler und rufen Sie die standardmäßige Ereignisbindung des Knockouts auf. so etwas für einen Schlag. (Der Autor der Geige verwendet tap.js)
http://jsfiddle.net/snaptopixel/spByj/
jetzt alles, was Sie in Ihrem HTML zu tun ist
<button data-bind="tap:doSomething">Click Me</button>
wo doSomething eine Funktion ist.
ein
bindingHandler
erstellen. Hier ein Beispiel für ein reales Projekt:ko.bindingHandlers.swipeSections = { init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { var elem = $(element); var params = valueAccessor().split('##'); elem.unbind('swipe'); elem.swipe({ swipeLeft: function (event, direction, distance, duration, fingerCount) { //process }, swipeRight: function (event, direction, distance, duration, fingerCount) { //process } }); }
};
eine Swipe-Bibliothek verwenden: https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
script type="text/javascript" src="scripts/jquery.touchSwipe.js"
definieren die Position der Bindung
div id="myid" class="section" data-bind="swipeSections: 'leftPanel##rightPanel'"
- 1. KnockoutJS Dynamische CheckBox Bindung
- 2. Bootstrap Datepicker Bindung in Knockoutjs
- 3. knockoutjs Klick-Bindung innerhalb foreach Bindung
- 4. Kommentar foreach vs foreach Bindung in knockoutjs
- 5. knockoutjs afterRender Funktion in foreach Bindung
- 6. KnockoutJS benutzerdefinierte Bindung feuern mehrere Male
- 7. knockoutjs Auswahländerungsereignis wird ausgelöst, wenn die Bindung
- 8. KnockoutJS Brauch typeahead.js Bindung allBindingsAccessor Funktion
- 9. KnockoutJS viewModel Bindung auf mehreren Seiten
- 10. Eine knockoutJS benutzerdefinierte Bindung für einfaches jQuery-Plugin erstellen
- 11. KnockoutJS: Kann nicht verarbeiten Bindung "wenn: function() {Gespräche zurückzukehren}"
- 12. Bindung Tastendruck Ereignis auf Knockoutjs, beobachtbar nicht bevölkert
- 13. KnockoutJs Bindung für Eingabe-Tag zur Formatnummer mit Komma
- 14. Binden Sie unauffällige Validierung mit benutzerdefinierten KnockoutJS Bindung
- 15. Knockoutjs beobachtbaren Array von Objekten Bindung Selektor namentlich
- 16. Parameter mit KnockoutJS
- 17. Google Maps und knockoutjs
- 18. Verfolgungslistenüberlappungen in knockoutjs
- 19. KnockoutJS Speicherleck
- 20. Radioknöpfe Knockoutjs
- 21. Binding Datum mit Knockoutjs
- 22. Wie kann CodeMirror in KnockoutJS integriert werden?
- 23. KnockoutJS selectedOptions Ursachen Auswahlbox zu Jitter in IE8
- 24. Verwenden des Prototyps für KnockoutJS berechnete Eigenschaften
- 25. knockoutjs und materializecss Javascript dropdown
- 26. knockoutJS Rückruf ausgeführt werden, nachdem beendet foreach
- 27. KnockoutJS - Rebinding ViewModel
- 28. Winkelmesser mit KnockoutJS
- 29. Suchfilter mit KnockoutJS
- 30. Binding multidimensional knockoutjs ObservableArray
Sie sind in der Lage Ihre eigenen Bindungen hinzuzufügen: http://knockoutjs.com/ Dokumentation/custom-bindings.html – Niko
ja ich weiß. aber die Sache, nach der ich suche, ist ein paar nette eingebaute Swipe-, Tap- und andere Touch-Events-Bindings (denn jetzt initialisiere ich es am Dokumentstart mit jquery-Selektoren und binde diese Aktionen manuell) –