7

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

4

4 回答 4

7

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

于 2013-04-07T10:17:39.540 回答
1
  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
            }
        });
    }
    

    };

  2. 使用滑动库:https ://github.com/mattbryson/TouchSwipe-Jquery-Plugin

    script type="text/javascript" src="scripts/jquery.touchSwipe.js"
    
  3. 定义项目的绑定

    div id="myid" class="section" data-bind="swipeSections: 'leftPanel##rightPanel'"
    
于 2013-05-07T19:02:00.687 回答
0

我不知道它是否仍然有帮助,但这里有一个指针。

  1. 使用像 Hammer.js 这样的库来获得多点触控操作。
  2. 编写自定义绑定处理程序并调用淘汰赛的默认事件绑定。像这样的刷卡。(小提琴的作者使用tap.js)

http://jsfiddle.net/snaptopixel/spByj/

现在你在你的 html 中所做的就是

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

其中 doSomething 是一个函数。

于 2012-11-19T13:44:59.910 回答
0

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

于 2012-06-26T14:02:40.720 回答