禁用拖放HTML元素?
我正在为我试图实现一个全function的窗口系统的Web应用程序工作。 现在情况很好,我只是遇到了一个小问题。 有时当我拖动我的应用程序的一部分(通常是我的窗口的angular落div,这应该触发一个resize的操作)的networking浏览器变得聪明,我认为我的意思是拖放一些东西。 最终的结果是,我的行动被搁置,而浏览器做拖放的东西。
有没有简单的方法来禁用浏览器的拖放? 理想情况下,我希望能够在用户点击某些元素时closures它,但重新启用它,以便用户仍然可以在我的窗口内容上使用浏览器的正常function。 我正在使用jQuery,虽然我无法find它浏览文档,如果你知道一个纯粹的jQuery解决scheme,它将是非常好的。
简而言之:我需要禁用浏览器文本select和拖放function,同时我的用户有鼠标button,并在用户释放鼠标时恢复该function。
感谢您的任何build议,我一直在寻找一段时间,没有运气。
尝试防止mousedown事件的默认值:
<div onmousedown="event.preventDefault ? event.preventDefault() : event.returnValue = false">asd</div>
要么
<div onmousedown="return false">asd</div>
这件事情起作用…..试试吧。
<BODY ondragstart="return false;" ondrop="return false;">
希望它有帮助。 谢谢
这可能工作:您可以禁用select与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; }
当然,只适用于较新的浏览器。 更多细节检查:
如何禁用文本select突出显示使用CSS?
使用jQuery将会是这样的:
$(document).ready(function() { $('#yourDiv').on('mousedown', function(e) { e.preventDefault(); }); });
在我的情况下,我想要从input中删除文本禁用用户,所以我用“drop”而不是“mousedown”。
$(document).ready(function() { $('input').on('drop', function(event) { event.preventDefault(); }); });
相反,event.preventDefault()可以返回false。 这是区别。
和代码:
$(document).ready(function() { $('input').on('drop', function() { return false; }); });
您只需使用draggable="false"
属性即可禁用拖动。
http://www.w3schools.com/tags/att_global_draggable.asp
尝试这个
$('#id').on('mousedown', function(event){ event.preventDefault(); }
这jQuery为我工作: –
$(document).ready(function() { $('#con_image').on('mousedown', function(e) { e.preventDefault(); }); });