Определение цели при drag&drop

  • Автор темы Автор темы Magz
  • Дата начала Дата начала

Magz

Новичок
Определение цели при drag&drop

Есть body, на body лежит table, в одной ячейке table лежит div, как дочерний элемент ячейки:
PHP:
<body>
  <table>
    <tr>
       <td width="40" height="40" id="r1c1">&nbsp;</td>
       <td width="40" height="40" id="r1c2"><div style="width: 40px; height: 40px; border: 1px black solid;">div</div></td>
    </tr>
    <tr>
       <td width="40" height="40" id="r2c1">&nbsp;</td>
       <td width="40" height="40" id="r2c2">&nbsp;</td>
    </tr>
  </table>
</body>
Я организую drag&drop div-а на JavaScript:
PHP:
div.onmousedown = "захват объета";
div.onmousemove = "движение объета";
div.onmouseup = "отпускаем объет";
Отпускаем объект над новой ячейкой таблицы. Как мне узнать, над какой? Над какой ячейкой находится указатель мыши?
Я пытался вешать на ячейки таблицы metod onmouseover и запоминать, над которой прошел курсор, так в момент движения метод не вызывается. Есть какие-нибудь еще идеи?

-~{}~ 06.06.08 13:30:

Вобщем, проведя кучу экспериментов я пришел к тому, что при onmousedown составляю массив с левой верхней координатой кажой ячейки, а при onmouseup проверяю, попала ли мышка в какую-то ячейку.
Конечную реализацию можно посмотреть chess.nikitins.ru Если кому-то будет интересно, могу подробно описать мой алгоритм определения цели.
Может, кто-то предложит более оптимальный?
 
можно каждому объекту с классом, скажем, "droppable" присваивать обработчик на "mouseover" и выводить указатель на DOM-объект цели в переменную, а при срабатывании mouseup использовать сохраненный указатель для реализации механизма Drop
 
Фишка в том, что "mouseover" срабатывает только у того объекта, который тащится в данный момент. И "mouseup" тоже у него. Поэтому не понятно, как получить указатель на то "droppable" объект. Или я что-то не понял? :)
 
Magz используй готовые JS фреймворки
например JQuery, extJs, там все контейнеры для Дрог анд Драп уже есть.
Поэтому не понятно, как получить указатель на то "droppable" объект
перебором однотипных объектов по месторасположению
 
Нет, это не наш метод :) Интересно самому разобраться. Да и зачем тащить кучу ненужного кода из фреймворка, когда нужна только одна функция? :)
 
Сверху