Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2010, 05:51
Carlillus
 
Fecha de Ingreso: junio-2007
Ubicación: Sabadell, BCN
Mensajes: 95
Antigüedad: 17 años, 9 meses
Puntos: 1
Pregunta Problema con script "Drag & Drop" y un Input

Hola, hace poco me descargué un javascript para poder mover los divs de mi página mientras clickara sobre ellos. El script usado fue este.

Código:
function carga()
{
	posicion=0;
	// IE
	if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
	// Otros
	else navegador=1;
}
function evitaEventos(event)
{
	// Funcion que evita que se ejecuten eventos adicionales
	if(navegador==0)
	{
		window.event.cancelBubble=true;
		window.event.returnValue=false;
	}
	if(navegador==1) event.preventDefault();
}
function comienzoMovimiento(event, id)
{
	elMovimiento=document.getElementById(id);
	 // Obtengo la posicion del cursor
	if(navegador==0)
	 {
		cursorComienzoX=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		cursorComienzoY=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
		document.attachEvent("onmousemove", enMovimiento);
		document.attachEvent("onmouseup", finMovimiento);
	}
	if(navegador==1)
	{
		cursorComienzoX=event.clientX+window.scrollX;
		cursorComienzoY=event.clientY+window.scrollY;
		document.addEventListener("mousemove", enMovimiento, true);
		document.addEventListener("mouseup", finMovimiento, true);
	}
	elComienzoX=parseInt(elMovimiento.style.left);
	elComienzoY=parseInt(elMovimiento.style.top);
	// Actualizo el posicion del elemento
	elMovimiento.style.zIndex=++posicion;
	evitaEventos(event);
}
function enMovimiento(event)
{
	var xActual, yActual;
	if(navegador==0)
	{
		xActual=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		yActual=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
	}
	if(navegador==1)
	{
		xActual=event.clientX+window.scrollX;
		yActual=event.clientY+window.scrollY;
	}
	elMovimiento.style.left=(elComienzoX+xActual-cursorComienzoX)+"px";
	elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";
	evitaEventos(event);
}
function finMovimiento(event)
{
	if(navegador==0)
	{
		document.detachEvent("onmousemove", enMovimiento);
		document.detachEvent("onmouseup", finMovimiento);
	}
	if(navegador==1)
	{
		document.removeEventListener("mousemove", enMovimiento, true);
		document.removeEventListener("mouseup", finMovimiento, true);
	}
}
window.onload=carga;
Fuente: http://www.formatoweb.com.ar/blog/20...sin-librerias/

Todo parecía funcionar perfectamente, hasta que dentro de uno de los divs que quería mover, puse un input (un campo de texto), en el cual, cuando intentas seleccionar el texto, en vez de seleccionarlo, se sigue moviendo el input.

Aquí pongo un ejemplo de lo que pasa:
http://lantania.es/Trash/dragdrop.php

Cómo podría solucionar esto?

Gracias