- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试结合 Hammer.js 和 knockout.js,但似乎有些东西不起作用。
我使用了这个函数:
var events = ['tap', 'doubletap', 'hold', 'rotate',
'drag', 'dragstart', 'dragend', 'dragleft', 'dragright', 'dragup',
'dragdown', 'transform', 'transformstart',
'transformend', 'swipe', 'swipeleft', 'swiperight',
'swipeup', 'swipedown', 'pinch', 'pinchin', 'pinchout'];
ko.utils.arrayForEach(events, function (eventName) {
ko.bindingHandlers[eventName] = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var origParams = ko.utils.unwrapObservable(valueAccessor()),
params = typeof(origParams) == 'function' ? {handler: origParams} : origParams,
hammerObj = hammer(element, params.options),
args = params.delegate ? [eventName, params.delegate, params.handler] : [eventName, params.handler]
hammerObj.on.apply(hammerObj, args);
}
}
});
例如,我正在尝试为页面上的每个图像获取拖动事件,因此在我的 HTML 上我有:
<div class="row-fluid" data-bind="foreach: {data: picturesArray}">
<ul class="thumbnails" >
<li class="img-item" data-bind="
doubletap: img.doubletap.bind(img),
drag: img.drag.bind(img)">
<img class="one-img"
style="width: 100px; height: 100px;" data-bind="attr: { src: img.media.m }"/>
</li>
</ul>
</div>
但它不起作用。在我的 JS 文件中,绑定(bind)方法没有被调用。
最佳答案
我是这样解决的。
http://plnkr.co/edit/WJnPNsHQIKbbUu7oaD12?p=preview
Javascript
var events = ['tap', 'doubletap', 'hold', 'rotate',
'drag', 'dragstart', 'dragend', 'dragleft', 'dragright', 'dragup',
'dragdown', 'transform', 'transformstart',
'transformend', 'swipe', 'swipeleft', 'swiperight',
'swipeup', 'swipedown', 'pinch', 'pinchin', 'pinchout'];
ko.utils.arrayForEach(events, function (eventName) {
ko.bindingHandlers[eventName] = {
update: function(element, valueAccessor){
var BindingContext = valueAccessor()[0];
var EventToFire = valueAccessor()[1];
var options = {
dragLockToAxis: true,
dragBlockHorizontal: true
};
var hammerTime = new Hammer(element, options);
hammerTime.on(eventName, function(ev){
//Fire the event with the item it was bound to.
EventToFire(BindingContext);
});
}
}
});
HTML
<div data-bind="foreach: Elements">
<!-- send yourself and the binding event to the "drag" handler -->
<div class="square" data-bind="drag: [$data, $parent.Drag]">
<div data-bind="text: Test"></div>
</div>
</div>
关于javascript - 与 hammer.js 的 Knockout 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290871/
我正在尝试为我的 meteor 应用程序添加触摸支持。我添加了hammer包:hammer。它将hammer_hammer.js 文件填充到文档中,并创建一个名为Hammer 的变量。问题是,这个变量
刚刚更新到 Hammer 2.0.2 并添加了 jquery.hammer plugin我在项目中需要它时遇到困难。 目前,我刚刚收到“Uncaught ReferenceError: Hammer
如何区分同一元素上的滑动和拖动?我试过: Hammer(blueDiv).on('swipe', function(e) { e.gesture.stopDetect(); e.gestu
我像这样创建一个锤子实例: var el = document.getElementById("el"); var hammertime = Hammer(el); 然后我可以添加一个监听器: ham
我第一次使用hammer.js 使轮播触摸左右滑动。轮播是由 bootstrap-carousel.js 构建的。但触摸滑动不起作用。我是 js 新手,所以无法找到解决方案。你能检查一下这里出了什么问
为什么我的 panstart 事件触发频率与 pan 事件触发频率相同? panstart 不是应该每个手势只触发一次吗? var myElement = document.getElementByI
我正在使用 Hammer.JS 来检查事件。我想长按做一些事情。所以我正在使用像这样的锤子新闻事件 var mc = new Hammer(can); mc.on("press", function
我目前正在使用hammer.js 触摸库来执行点击和平移事件。我现在需要双击事件。 根据双击示例,锤子管理器创建一个新的锤子对象,而无需预设识别器。您基本上可以添加/构建自己的。 //We creat
我正在使用 Hammer.js 来寻找水平平移手势,我设计了一个简单的函数来在向左或向右平移时单击按钮。它工作正常,除了垂直滚动在触摸设备上没有任何作用,或者它真的有故障和奇怪。 函数如下: var
我有一个想法,让一些网页适合触摸设备,并且我有一个包含行和列的表格。我计划单击某个单元格并生成对不同页面或功能的调用。我需要对 tap、doubletap 和 taphold 表事件的支持,在长时间使
I have two html divs like this: Div 1 Div 2 Div 2 使用 jquery,当我单击每个 div 时,我可以获得正确的 data-val 值。 var el
我正在使用 Hummer.js为了处理单击和双击,两种手势的识别都有几百毫秒的延迟。如此处所示 (fiddle) var hammertime = new Hammer.Manager(conta
我对 Hammer JS 有一些问题, 在 chrome 开发者工具中我有一些错误: 未捕获的 ReferenceError:TOUCH_ACTION_COMPUTE 未定义 hammer.js:37
我在我的 Web 应用程序上使用 hammer.js 来实现手势功能。我用它来滑动视频元素,它的效果如预期的那样完美。但是,当我将以下代码应用于图像元素时,它不起作用。 App.Views.Photo
我以这种方式使用 Hammer,它有效(它只触发下一个/上一个按钮): var slider = document.getElementsByClassName('slider'); Hammer(s
我有一个简单的照片库,可以在拖动事件时更改图像,我在使用 iOS7 浏览器时遇到问题,当向右或向左拖动时,拖动事件被触发了太多次。我试图添加一个全局变量来告诉上一个事件是否未结束但我无法让它工作,我还
我想出了以下脚本(基于此处和网络上的答案)来捏/缩放和移动缩放图像。它会放大/缩小但不会移动调整大小的图像。 document.write 脚本永远不会执行,即使代码看起来非常好。我是否遗漏了一些明显
当用户在他们的触摸设备上执行操作时,我正在使用 hammer.js 重置我的计时器。这适用于点击、按下和水平滑动,但我怎样才能让它识别垂直滑动? $(function () { var pag
我构建了以下演示应用程序,允许用户使用触摸手势左右移动各部分以及上下移动页面:http://preview.na-software.co.uk/Demo/FutureLearning2/ 它使用 Ha
有没有办法用 Hammer.js 找出滑动手势的起点?我需要知道它,以便查明是否有人开始从设备(本例中为 iPad)的边框滑动。 $(".nav").on("swipeleft", f
我是一名优秀的程序员,十分优秀!