|
one event handled two divОбсуждение темы one event handled two div в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Здравствуйте! Задача простая: мышью перетянуть содержимое одного div'а в другой, т.е.: 1. при onMouseDown над source div создаем новый див с содержимым исходного. ... |
|
Опции темы |
01.08.2011, 22:40 | #1 |
|
Здравствуйте!
Задача простая: мышью перетянуть содержимое одного div'а в другой, т.е.: 1. при onMouseDown над source div создаем новый див с содержимым исходного. 2. исходному div'у удаляем содержимое. 3. новому div'у привязываем onMouseMove и тащим его к приемнику. 4. новому div'у привязываем onMouseUp и удаляем его. 5. приемнику нужно знать, что новый div был над ним, когда у него отработалось событие onMouseUp, иначе содержимое возвращается источнику. Из приведенной выше схемы видно, что 4 и 5 событие - по сути одно, но обработчик div'а-приемника onMouseOver не сработает, пока работает onMouseMove нового div'а. Таким образом, вся схема является неправильной. Посоветуйте схему и приемы решения данной задачи. Заранее благодарен. Алексей PS Почините utf-8 Последний раз редактировалось handler; 01.08.2011 в 22:44.. Причина: utf-8 |
|
01.08.2011, 22:50 | #2 |
|
http://jqueryui.com/demos/droppable/
|
|
01.08.2011, 22:56 | #3 |
|
не так надо делать.
1. делаем копию исходного дива и тащим копию за мышкой (лучше наверно в полупрозрачном виде). при этом в некую глобальную переменную пишем айдишник исходного дива. 2. на возможных целях стоит onmouseup, который в случае наличия какого-то айдишника в той глобальной переменной, делает что нужно (копирует содержимое, потом удаляет исходный див). 3. на копии исходного дива по mouseup стоит просто уничтожение этого дива. вуаля! |
|
04.08.2011, 12:13 | #4 |
|
Вся проблема в том, что мы не можем обрабатывать события цели до тех пор, пока мы тащим див и не отпустили его.
А в остальном предложенная Вами схема - точная копия моей Последний раз редактировалось handler; 04.08.2011 в 12:13.. Причина: Добавлено сообщение |
|
04.08.2011, 12:14 | #5 |
|
левый комент
модер удали плз |
|
06.08.2011, 10:38 | #6 |
|
да это гон. вы буквы в слова, а слова в логические фразы со смыслом умеете оборачивать? моя схема будет работать, ваша - нет. если вы этого не понимаете, не трогайте js вобще.
|
|
15.08.2011, 18:39 | #7 |
|
Хорошо!
Скажите, пожалуйста, будет ли срабатывать обработчик onmouseover destination-элемента в момент, когда мы тащим над ним копию дива? |
|
15.08.2011, 18:44 | #8 |
|
а зачем нам этот обработчик? нам нуже onmouseup на destination-элементе.
|
|
18.08.2011, 14:34 | #9 |
|
Хорошо.
Мы тащим див к приемнику - таким образом в настоящий момент работает onmousemove дива, который мы тащим. Наступило событие,когда мы тащим наш див над приемником. Как приемник узнает, что событие наступило? Насколько я понимаю, javascript не может передавать события одновременно нескольким объектам. Или я ошибаюсь? В таком случае это уже многопоточность получается |
|
18.08.2011, 15:55 | #10 |
|
зачем приемнику знать о том, что над ним что-то тащат, пока то что тащат не отпустили? а вот в момент отпускания он и узнает что ему что-то притащили.
|
|
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|