在div中拖动 - Firefox问题

时间:2011-03-31 05:03:04

标签: javascript jquery firefox html

问候,

我遇到了一个简单的jQuery mousemove函数问题:

当我在div中单击并拖动时,浏览器有时会尝试“拖动”div,就像它是图像一样。这仅在Firefox(测试版4.0)中展示,并且对我的项目造成严重破坏。

我把它归结为这个测试用例:

<style type="text/css" media="screen">
.box { width: 100px; height: 100px; margin: 10px; }
.red {background-color: red; }
.yellow {background-color: yellow; }
.green {background-color: green; }
.hidden { display: none; }
</style>

<div class="box red"></div>
<div class="box yellow">Can't Drag Me</div>
<div class="box green"><div class="hidden">Can't Drag Me</div></div>

要重现:在div上单击一次以选择它,然后单击并拖动。

  • 可以拖动红框
  • 无法拖动黄色框
  • 可以拖动绿框

因此,当div为空或其内容被隐藏时,问题似乎只会出现。

任何人都可以向我解释为什么会这样吗? 什么是防止这种“拖延”行为的最佳方法?现在我知道我可以在容器中添加一个空div,但我想知道是否有更优雅的方法。

由于

1 个答案:

答案 0 :(得分:3)

I wasn't able to reproduce the issue in Firefox 4,但如果 正在为你而发生,这应该会阻止它......

$('div').bind('dragstart', function(event) {
    event.preventDefault()
});

jsFiddle