0

在 stackoverflow 上有一个问题,询问如何防止图像拖动。代码是这样的:

window.addEventListener('mousedown', function(event){ event.preventDefault() }, false);

问题是这阻止了一切。当我单击输入时,它没有得到焦点。所以我添加了一个条件“if event.target.tagName !== 'INPUT'”。现在我点击输入,它被聚焦,然后我点击其他地方 - 它保持聚焦,没有发生模糊。

如何防止仅拖动图像(即使使用背景图像也会在 FireFox 中发生)并保持所有其他功能正常工作?

编辑:我不能只在图像上注册事件处理程序。我没有任何图像,我有带有背景图像的 div。此外,单击图像也应该模糊输入焦点。

EDIT2:下面是错误的解决方案(简化 - 用 CoffeeScript 编写),但阻止模糊操作然后我自己再做一次是没有意义的。

inputs = document.querySelectorAll('input')
for input in inputs
    input.blur()
4

1 回答 1

0

Seems like you're on the right track - but excluding input still includes everything else. Why not only prevent the mousedown event on images only?

window.addEventListener('mousedown', function(event){
    if (event.target.tagName === "IMG") { 
        event.preventDefault(); 
    } 
}, false);
于 2012-08-09T16:45:19.697 回答