Hammer.js:滑动事件对图像无效
Hammer.js: Swipe event not working on images
我在web应用程序上使用hammer.js
来实现手势功能。我用它来滑动一个视频元素,它的工作效果和预期的一样完美。然而,当我将以下代码应用于图像元素时,它就不起作用了。
App.Views.Photo = Backbone.View.extend({
template : template('photoTemplate'),
className : 'photo',
parent : null,
events: {
'swipe' : 'swiped',
// 'pan' : 'dragged'
},
swiped: function(e) {
this.remove();
this.parent.newContent(this.model);
},
这个完全相同的代码适用于视频元素,但不适用于图像。我也试过在滑动函数中执行e.gesture.preventDefault();
,但也不起作用。我现在正在firefox上测试这个应用程序。
任何帮助都将不胜感激。
感谢
[编辑]:我正在初始化锤子代码,如下
render: function() {
$(this.el).attr('id', this.model.attributes._id);
this.$el.html( this.template( this.model.toJSON() ) );
this.$el.hammer();
return this;
},
您可以使用:
<img draggable="false"...
或者像这样的CSS(可能不是所有浏览器都支持,尤其是IE)
pointer-events: none;
好吧,经过几个星期的思考,我终于得到了答案。
在initialize
函数中,我放置了以下代码
$('img').on('dragstart', function(event) { event.preventDefault(); });
所以它看起来像这个
initialize: function(opts) {
this.render();
this.parent = opts.parent;
$('img').on('dragstart', function(event) { event.preventDefault(); });
},
这样做的目的是防止图像像默认情况一样被拖动,这就起到了作用。
现在在swipe
上,图像被删除了,就像我想要的一样。
[编辑]如果页面上有多个图像,请将this
添加到类似的事件中
this.$('img').on('dragstart', function(event) { event.preventDefault(); });
这将应用于使用该视图渲染的所有图片。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 为什么视频不显示在有角度的灯箱中?图像有效,但视频无效;t
- base64字符串使用Node.JS被写为无效图像
- jQuery image丢弃无效的图像类型,并显示一条无效的消息而不是警告框
- 带有谷歌地图和天气图像的网页只能在IE中运行,在Chrome中无效
- Hammer.js:滑动事件对图像无效
- 在PopupPanel中添加图像和更改文本字体大小无效
- 更改背景图像无效
- 解码图像Base64字符串无效
- Javascript Base64图像数据已损坏/无效
- toString () & # 39; base64 # 39;在节点返回无效的图像数据
- NodeJS将图像流转换为base64会产生无效数据
- 在jQuery中创建图像标记无效
- 图像视图-无效的图像类型
- {"error ":["无效的图像URL"]}与任意集成
- 无法用JavaScript替换/使用relativie图像url.绝对路径有效,相对路径无效
- 无效的图像src错误
- javascript中有效的base64图像字符串出现DOM异常5无效字符错误
- 使用图像按钮更改标签名称无效