Перетаскивание внутри div - проблема Firefox - PullRequest
1 голос
/ 31 марта 2011

Привет,

Я столкнулся с проблемой простой функции 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 пуст или его содержимое скрыто.

Может кто-нибудь объяснить, почему это происходит?Каков наилучший подход для предотвращения такого «перетаскивания» поведения?Теперь я знаю, что могу добавить пустой контейнер в контейнер, но мне было интересно, есть ли более элегантный подход.

Спасибо

1 Ответ

3 голосов
/ 31 марта 2011

Я не смог воспроизвести проблему в Firefox 4 , но если это происходит для вас, это должно остановить это ...

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

jsFiddle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...