답변:
당신은 이것을 좋아할 수 있습니다 ...
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 draggable="false" ondragstart="return false;" src="..." />
문제
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 {
-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
현재 또는 미래의 무제한 요소에 대한 하나의 이벤트 바인딩 . 가장 덜 집중적이며 가장 견고합니다.
글쎄, 여기에있는 답변이 모두에게 도움이되었는지 아닌지는 모르겠지만 HTML 페이지에서 텍스트를 드래그하고 선택하지 못하게하는 데 도움이되는 간단한 인라인 CSS 트릭이 있습니다.
당신에 <body>
태그 추가 ondragstart="return false"
. 이미지 드래그를 비활성화합니다. 그러나 텍스트 선택을 비활성화하려면을 추가하십시오 onselectstart="return false"
.
코드는 다음과 같습니다. <body ondragstart="return false" onselectstart="return false">
내 솔루션을 최고로 생각할 수 있습니다. e.preventDefault () 및 ondragstart 이벤트 가 지원 되지 않으므로 대부분의 답변은 IE8과 같은 이전 브라우저와 호환되지 않습니다 . 브라우저와 호환 가능하게하려면 이 이미지에 대한 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 사용
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를 사용하고 있습니다 (여기를 클릭)