knockout.js 敲除js中的滑动动作绑定

rjjhvcjd  于 2022-11-10  发布在  其他
关注(0)|答案(4)|浏览(141)

我在我的应用程序中使用knockout作为主框架,它必须支持平板电脑和移动的设备。由于框架是建立在绑定处理程序上的,我想知道如何实现对操作(如滑动和其他特定设备的操作)的自定义绑定,或者可能有类似的操作?

dpiehjr4

dpiehjr41#

可能太晚了,但这里有一个库,它为knockoutjs添加了触摸绑定:https://github.com/yaroslavya/knockouch

vsdwdz23

vsdwdz232#

1.创建一个bindingHandler。下面是一个真实的项目的示例

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
        }
    });
}

};
1.使用扫动资料库:https://github.com/mattbryson/TouchSwipe-Jquery-Plugin

script type="text/javascript" src="scripts/jquery.touchSwipe.js"

1.定义项目的系结

div id="myid" class="section" data-bind="swipeSections: 'leftPanel##rightPanel'"
piok6c0g

piok6c0g3#

由于knockout.js不依赖于任何其他框架,因此没有针对特定框架的内置绑定。将jQuery选择器代码转换为绑定处理程序(引用上面提供的link @niko)应该是一项简单的任务。

vhmi4jdf

vhmi4jdf4#

我不知道它是否仍然有帮助,但这里有一个指针。
1.使用像Hammer.js这样的库来获取多点触控操作。
1.编写一个自定义绑定处理程序并调用knockout的默认事件绑定。对于swipe,类似如下。(fiddle的作者使用tap.js)
http://jsfiddle.net/snaptopixel/spByj/
现在你在html中所做的就是

<button data-bind="tap:doSomething">Click Me</button>​

其中doSomething是一个函数。

相关问题