当前位置:  开发笔记 > 编程语言 > 正文

禁用HTML元素上的拖放?

如何解决《禁用HTML元素上的拖放?》经验,为你挑选了5个好方法。

我正在开发一个Web应用程序,我正在尝试实现一个功能齐全的窗口系统.现在它进展顺利,我只遇到一个小问题.有时当我去拖动我的应用程序的一部分(通常是我的窗口的角落div,它应该触发调整大小操作)时,Web浏览器变得聪明并认为我的意思是拖放一些东西.最终结果,我的操作被搁置,而浏览器执行拖放操作.

是否有一种简单的方法来禁用浏览器的拖放?理想情况下,我希望能够在用户点击某些元素时关闭它,但重新启用它,以便用户仍然可以在我的窗口内容上使用浏览器的常规功能.我正在使用jQuery,虽然我无法找到它浏览文档,但如果你知道一个纯粹的jQuery解决方案,那就太棒了.

简而言之:我需要在用户按下鼠标按钮时禁用浏览器文本选择和拖放功能,并在用户释放鼠标时恢复该功能.



1> SyntaxError..:

这件事有效.....试试吧.


希望能帮助到你.谢谢


这个工作.mousedown接受的答案没有.
效果很好!(属性也可以放在`
`元素上.)
投票赞成这个答案.moused答案IMO太短(你可以在其他情况下使用mousedown事件).这个答案非常好:)
这确实是一个更好的答案,对鼠标按下'preventDefault()'有太多的副作用(例如防止表格文本输入的焦点/不聚焦)

2> Sergey Ilins..:

尝试阻止mousedown事件的默认值:

asd

要么

asd


抱歉,这太糟糕了。请参阅下面的答案。
+1-但是,这在Firefox(6.0及更低版本)中具有不幸的副作用,在这种情况下,它会阻止将':active'伪类应用于该元素。这意味着我不能真正将其用于链接。

3> icl7126..:

您只需使用draggable="false"属性即可禁用拖动.
http://www.w3schools.com/tags/att_global_draggable.asp



4> Tosh..:

这可能有效:您可以禁用css3选择文本,图像和基本上所有内容.

.unselectable {
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;

   /*
     Introduced in IE 10.
     See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
   */
   -ms-user-select: none;
   user-select: none;
}

当然只适用于较新的浏览器.有关详细信息,请检查

如何禁用使用CSS突出显示文本?



5> Victor Roman..:

使用jQuery,它将是这样的:

$(document).ready(function() {
  $('#yourDiv').on('mousedown', function(e) {
      e.preventDefault();
  });
});

在我的情况下,我想从输入中的drop text禁用用户,所以我使用"drop"而不是"mousedown".

$(document).ready(function() {
  $('input').on('drop', function(event) {
    event.preventDefault();
  });
});

相反,event.preventDefault()可以返回false.这是区别.

和代码:

$(document).ready(function() {
  $('input').on('drop', function() {
    return false;
  });
});

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有