2009-04-29 2 views
2

Я уже давно искал и пытался это сделать, но никуда не годится. Итак, здесь идет:Сделать DIV принимать и обрабатывать падение через JavaScript возможно?

Что я хочу сделать, это удалить текст в теге DIV и обработать его с помощью JavaScript. Что-то вдоль этих линий:

<script type="text/javascript"> 

function handleDrop(sender, args) 
{ 
    $('#theDiv').html(args.textfromdrop); 
} 

</script> 

<div id="theDiv" ondrop="handleDrop()" /> 

<br/> 
<p> 
This is some simple text. Draggable? 
</p> 

Итак, на этой странице я хочу, чтобы иметь возможность перетаскивать содержимое из абзаца, например, в DIV и будет обрабатывать падение и изменить его внешний вид соответственно (Или, может быть, просто показать, что текст, если он справится с этим!). Я пытаюсь использовать jQuery, но, похоже, это целая другая модель, и я не могу установить все свои потенциальные перетаскивания как таковые, потому что они должны быть доступны из разных стран. Возможно ли это?

EDIT: Пожалуйста, исправьте меня, если я ошибаюсь, но для этих droppables требуется перетащить, чтобы их можно было отбросить, не так ли? Я бы хотел, чтобы вы могли удалить текст, чистый текст, со страницы, на которую у вас нет никакого контроля. Это может показаться странным, но это расширение Firefox, где вы можете перетаскивать контент со страницы на другую страницу, которая находится в боковой панели.

ответ

0

Я бы рекомендовал использовать установленную библиотеку JavaScript, такую ​​как JQuery или YUI.

0

Или, если вы предпочитаете прототип, как я: http://wiki.github.com/madrobby/scriptaculous/droppables

EDIT: Исходя из вашего пересмотренного вопроса: Нет, нет никакого способа, чтобы позволить пользователю отказаться текстом с одной страницы на другую страницу. Если вы не решите построить расширение FireFox, как вы говорили. Даже если вы можете найти способ обойти проблему безопасности, когда невозможно создать сценарий страницы, находящейся не в том же домене, вы можете только перетаскивать элементы DOM в окне/iFrame, в котором они находятся.

0

Вы считаете создание скрытая текстовая область (т.е. с CSS-кодом visibility:hidden), перекрывающая рассматриваемый div? Затем отметьте капли с помощью события onchange JavaScript, или если это не сработает, периодически значение textarea для непустых строк. Я предполагаю, что ваш пробег будет зависеть от браузера и операционной системы.

+0

Это хорошая идея. Попробуй, когда я вернусь домой. Роскошь в том, что мне нужно только это, чтобы работать в Firefox. Однако все ОС. – miccet

0

Я сделал это раньше, и он может быть выполнен без какой-либо библиотеки с некоторым усилием.

Я построил следующие методы:

  1. метод, который отслеживает ваши движения мыши.
  2. Способ чтения и передачи содержимого при его удалении.
  3. Используется onmousemove и события onclick для методов перетаскивания.
  4. OnMouseOver для области div, где вы хотите удалить текст - чтобы определить, находится ли указатель над контейнером (div) или нет.
  5. Наконец, после удаления текста я удалил исходный контент (при необходимости) с помощью innerHTML, чтобы он выглядел так, будто он был перемещен.

Вы можете в значительной степени добиться использования Windows, например, функции перетаскивания. Я использовал его для перетаскивания изображений, значков и т. Д.

Если вам нужна помощь в кодировании, я могу дать вам несколько советов, но большинство из них вы найдете, если у вас немного вокруг Google, тогда все, что вам нужно сделать, - заставить их работать вместе.

Смежные вопросы