Voi*_*oid 17 javascript browser firefox jquery
Firefox有这种烦人的行为,它让用户默认拖放任何图像元素.如何使用jQuery干净地禁用此默认行为?
Tim*_*own 32
以下将在Firefox 3及更高版本中执行:
$(document).on("dragstart", function() {
return false;
});
Run Code Online (Sandbox Code Playgroud)
如果您不想禁用所有拖动(例如,您可能仍希望允许用户将链接拖动到其链接工具栏),则可以确保仅<img>阻止元素拖动:
$(document).on("dragstart", function(e) {
if (e.target.nodeName.toUpperCase() == "IMG") {
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
请记住,这将允许拖动链接中的图像.
它需要是jQuery吗?您只需要在相关图像上为您的mousedown事件定义回调函数event.preventDefault().
所以你的图片标签看起来像这样:
<img src="myimage.jpg" onmousedown="if (event.preventDefault) event.preventDefault()" />
if需要额外的,因为否则IE会抛出错误.如果你想要所有图像标签,你只需要img使用jQuery 迭代标签并附加onmousedown事件处理程序.
在这个页面上有一个很好的解释(和示例):" 在FireFox中禁用图像拖动 "和一个没有很好的文档版本在这里使用jQuery作为参考:" 禁用Firefox图像拖动 "
没有jQuery的解决方案:
document.addEventListener('dragstart', function (e) {
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
如果Javascript是可选要求,您可以尝试使用CSS
.wrapper img {
pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29115 次 |
| 最近记录: |