当声明doctype html时,我的代码停止工作,因此不会触发事件拖动或触摸。

我正在原型中将图像元素拖到容器元素中进行裁剪。我还将实现缩放以进行缩放等。为了使此功能在移动浏览器上更好地工作,我需要在文档的开头设置此项,以帮助防止双击和其他不必要的事件触发:



您可以找到一个有效的示例,而无需声明doctype:

http://jsbin.com/cokil/5

如果我确实声明了doctype并放置了元视口,它将停止工作,但我似乎无法理解原因:

http://jsbin.com/cokil/4

它也已经过测试,仅添加了doctype而没有meta视口。根本不会工作!

有什么提示或建议吗?

感谢您的光临!

最佳答案

声明DOCTYPE时,页面告诉浏览器严格呈现该页面。如果仅省略声明,它将使用所谓的Quirksmode

因此,很明显,您的代码不符合添加<!DOCTYPE html>时使用的HTML 5严格模式。

希望这是您需要的建议。

编辑:

我发现了导致您的脚本无法正常工作的原因。在您的drag事件中:只需将旧行替换为:

imgEl.style.top = y + parseFloat(event.gesture.deltaY)+'px';
imgEl.style.left = x + parseFloat(event.gesture.deltaX)+'px';


严格模式要求您返回数字值,后跟px,就像在样式属性style="top:0px; left:0px;"中定义它一样。

关于javascript - 为什么声明doctype html阻止事件拖动或触摸触发?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21780121/

10-13 05:25