想动态禁用页面图片拖拽

想做图片禁止拖拽,因为后台返回的是一整个富文本的内容,因此不能直接在img上面加οndragstart=”return false;”
( <img src=”logo.gif” width=88 height=31 οndragstart=”return false;” >不可行)
然后查了其他资料,说
for(i in document.images)document.images[i].οndragstart=function(){return false;};
用循环查找img可以禁用,然而打印document.images[i].οndragstart却是undefined。
因此想问问有人知道如何禁用图片拖拽吗?
我想的是是否有个设置可以直接禁用img外面包着的那层div,只要是该div下的图片,都不可能拖拽?

已解决,谢谢回答的大佬们。

阅读 3.8k
4 个回答

假设你的img外层包裹的元素类名为drag-disabled

    document.body.addEventListener('dragstart',function(e){
        if(e.target.nodeName.toLowerCase() === 'img' && e.target.parentNode.classList.contains('drag-disabled')){
            e.preventDefault();
        }
    })

返回后用replace替换后台返回得img标签,然后设置属性

<img src="" alt="" style="pointer-events:none;">

<img src="" alt="" draggable="false">

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题