Answers:
你可以这样...
document.getElementById('my-image').ondragstart = function() { return false; };
看来您正在使用jQuery。
$('img').on('dragstart', function(event) { event.preventDefault(); });
$(document)
代替$(window)
$('img').on('dragstart', false);
仅CSS解决方案:使用 pointer-events: none
img
。
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
我在我的网站http://www.namdevmatrimony.in/上使用了它, 就像魔术一样!!!:)
我尝试了一下,发现这行得通。
$("img").mousedown(function(){
return false;
});
我确定这会禁用所有图像的拖动。不确定会影响其他因素。
<a>
标签内怎么办?然后,如果用户单击图像,则不会单击该链接。
由于我的图像是使用ajax创建的,因此在windows.load中不可用。
$("#page").delegate('img', 'dragstart', function (event) { event.preventDefault(); });
这样,我可以控制哪个部分阻止了该行为,它仅使用一个事件绑定,并且可以用于将来由ajax创建的图像,而无需执行任何操作。
使用jQuery的新on
绑定:
$('#page').on('dragstart', 'img', function(event) { event.preventDefault(); });
(感谢@ialphan)
img
元素,无论现在还是将来。最省力,最可靠。
您可能会认为我的解决方案是最好的。大多数答案与IE8之类的旧浏览器不兼容,因为将不支持e.preventDefault()以及ondragstart事件。要实现跨浏览器兼容,您必须阻止该图像的mousemove事件。请参阅以下示例:
jQuery的
$("#my_image").mousemove( function(e) { return false } ); // fix for IE
$("#my_image").attr("draggable", false); // disable dragging from attribute
没有jQuery
var my_image = document.getElementById("my_image");
my_image.setAttribute("draggable", false);
if (my_image.addEventListener) {
my_image.addEventListener("mousemove", function(e) { return false });
} else if (my_image.attachEvent) {
my_image.attachEvent("onmousemove", function(e) { return false });
}
经过测试,甚至适用于IE8
将以下CSS属性设置为图像:
user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-drag: none;
-webkit-user-select: none;
-ms-user-select: none;
document.getElementById('#yourImageId').addEventListener('dragstart', function(e) {
e.preventDefault();
});
在此Plunker中工作http://plnkr.co/edit/HbAbJkF0PVLIMjTmEZml
您可以为此使用内联代码
<img draggable="false" src="http://www.ourkanpur.com/images/logo.png">
第二个选项是使用外部CSS或页面CSS
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
<img src="http://www.ourkanpur.com/images/logo.png">
两者都正常工作, 我在此站点上使用外部CSS (单击此处)