回答:
あなたはこれを好きになることができます...
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;
}
それはFirefoxで動作していないということです
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(); });
このようにして、どのセクションが動作をブロックするかを制御できます。これは、1つのイベントバインディングのみを使用し、何もしなくても将来のajaxで作成されたイメージに対して機能します。
jQueryの新しいon
バインディング:
$('#page').on('dragstart', 'img', function(event) { event.preventDefault(); });
(@ialphanに感謝)
img
現在または将来の無制限の要素に対する1つのイベントバインディング。負荷が最も少なく、最も堅牢です。
あなたは私の解決策を最もよく考えるかもしれません。ondragstartイベントと同様にe.preventDefault()もサポートされないため、ほとんどの回答は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">
そして2番目のオプションは外部またはページ上の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を使用したm個(ここをクリック)