如何使用jQuery禁用Firefox对所有图像行为的默认拖放?
Firefox有这种烦人的行为,它让用户默认拖放任何图像元素。 如何使用jQuery干净地禁用此默认行为?
以下内容将在Firefox 3及更高版本中执行:
$(document).on("dragstart", function() { return false; });
如果您不想禁用所有拖动(例如,您可能仍希望允许用户将链接拖动到其链接工具栏),则可以确保仅阻止元素拖动:
$(document).on("dragstart", function(e) { if (e.target.nodeName.toUpperCase() == "IMG") { return false; } });
请记住,这将允许拖动链接中的图像。
它需要是jQuery吗? 您只需要使用event.preventDefault()
为相关图像上的mousedown事件定义回调函数。
所以你的图片标签看起来像这样:
需要额外的if
,否则IE会抛出错误。 如果你想要所有图像标签,你只需要使用jQuery迭代img
标签并附加onmousedown事件处理程序。
这个页面上有一个很好的解释(和示例):“ 在FireFox中禁用图像拖动 ”,这里使用jQuery作为参考:“ 禁用Firefox图像拖动 ”
没有jQuery的解决方案:
document.addEventListener('dragstart', function (e) { e.preventDefault(); });
如果Javascript是可选要求,您可以尝试使用CSS
.wrapper img { pointer-events: none; }
引用Tim Down的解决方案,你可以实现相当于他的第二个代码片段,只使用jQuery时禁用img
drags:
$(document).on("dragstart", "img", function() { return false; });
我不记得我的来源,但工作