这是一个有点具体的问题,所以我将直奔主题。
我正在为web应用程序的一部分编写一个简短而简单的拖放例程,虽然拖放部分工作正常,但在操作过程中站点变得非常丑陋,因为浏览器仍然执行默认操作并进行文本选择。
我已经尝试了一些解决方案,主要涉及从mousedown或click事件返回false,虽然它们在某些浏览器中禁用了文本选择,但它们似乎也完全禁用了mouseup事件,破坏了脚本的"drop“部分,并使这个永久浮动的图标停留在鼠标上--这并不有趣。
我并不是真的希望文本选择完全消失,我只是想建议浏览器...不要在拖动时这样做,如果这样做有意义的话。由于我知道受影响的区域(涉及到iframe),我可以轻松地将属性应用于受影响的元素,等等。如果需要,我可以发布代码,但我正在寻找更通用的解决方案。由于这只是一个美观的问题,我正在寻找一个在大多数浏览器中都能工作的修复程序,这并不是那么关键。
谢谢!
发布于 2009-05-21 06:24:43
在W3C浏览器中,可以对event
对象调用preventDefault
方法。IE的等价物是将returnValue
设置为false
。
function stopDefault(e) {
if (e && e.preventDefault) {
e.preventDefault();
}
else {
window.event.returnValue = false;
}
return false;
}
编辑:只需重新阅读问题,您可能还希望在处理实际拖动的代码部分防止默认操作,而不仅仅是在最初的鼠标向下或单击时。
发布于 2009-05-21 06:13:05
据我所知,拖动的元素必须位于鼠标指针下的其他元素上。如果它将随着鼠标指针移动,它将阻止在页面上进行任何选择。
https://stackoverflow.com/questions/891581
复制相似问题