2010-12-06 3 views
8

He estado tratando de usar ondrag() y algunas otras funciones en un div representado dinámicamente en una página HTML.Javascript ondrag, ondragstart, ondragend

Parece que ninguno de estos eventos se activa, ni recibo ningún error. No puedo encontrar mucha documentación útil tampoco. ¿Lo estoy interpretando incorrectamente, puede usar estos eventos para guiar la funcionalidad para arrastrar un div alrededor de la pantalla?

+0

¿está usando algún framework/plugin de JavaScript? Si no es otro que IE y safari, otros navegadores no comprenden ondrag. ¿Puedes pegar tu código? – Prashanth

+0

Borwser? doctype? ¿Puedes darnos otros detalles? – Eineki

+1

Buen artículo: http://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html –

Respuesta

10

Tenga una mirada en esta documentación: https://developer.mozilla.org/En/DragDrop/Drag_and_Drop

Nota: No funciona en todos los navegadores.

Si quieres un uso apoyo multi-navegador jQuery: http://jqueryui.com/demos/draggable/

jQuery ejemplo:

<div id="draggable" class="ui-widget-content"> 
    <p>Drag me around</p> 
</div> 

<script> 
    $(function() { 
     $("#draggable").draggable({ 
      drag: function(event, ui) {} 
     }); 
    }); 
</script> 

Otro ejemplo: arrastre

<div id="toBeDragged" draggable="true"> 
    This text <strong>may</strong> be dragged. 
</div> 

<script> 
document.getElementById('toBeDragged').addEventListener('dragstart', function(event) { 
    event.dataTransfer.setData('text/plain', 'This text may be dragged'); 
}); 
</script> 
+11

No estoy usando JQuery lo siento –

+0

@Tom Gullen: ¿qué pasa con el otro ejemplo? – Tower

+1

Si desea una solución robusta de arrastre entre navegadores, recomendaría utilizar una de las muchas opciones disponibles basadas en un marco JS existente. –

1

No he utilizado yo mucho, pero me cree que es la "acción de edición" de arrastre, por ejemplo, seleccionar texto y arrastrarlo dentro de un cuadro de texto/área de texto.

Puede que tenga que poner en práctica sus propias onmousedown()onmouseup() y onmousemove() manipuladores para la funcionalidad Creo que lo que busca es

0

Una forma sencilla de hacerlo es con jQuery UI, asegúrese de que lo utilice después de su dinámica tiene div sido prestado

$(document).ready(function() { 
    $('.my_draggable_elements').draggable({ 
     drag: function(){ 
      // do something 
     } 
    }); 
}); 
0

¿Hay contenido en el div? No creo que sea el elemento en sí el que se vea arrastrado en este evento en particular.