Показать сообщение отдельно
  #1 (permalink)  
Старый 06.06.2010, 13:22
Новичок на форуме
Отправить личное сообщение для Александр Владимирович Посмотреть профиль Найти все сообщения от Александр Владимирович
 
Регистрация: 06.06.2010
Сообщений: 1

Drag & Drop и Textarea
Есть механизм реализации перемещения объекта. Суть вопроса в том, что в елементе есть textarea при перемещении фокуса в которую нужно чтобы событие onmousemove прекращало свое действие, т.е. останавливалось.

Может кто сталкивался с таким....

var getDrag = {
	_setElement : null,
	attach : function(setElement) {
		setElement.onmousedown = getDrag._dragElementStart;
		setElement.dragElementStart = new Function();
		setElement.dragElement = new Function();
		setElement.dragEnd = new Function();
		return setElement;
	},
	_dragElementStart : function(dragEvent) {
		var setElement = getDrag._setElement = this;
		var dragX = parseInt(setElement.style.left);
		var dragY = parseInt(setElement.style.top);

		if (isNaN(parseInt(setElement.style.top))) {
			setElement.style.top = '150px';
		}
		if (isNaN(parseInt(setElement.style.left))) {
			setElement.style.left = '379px';
		}

		dragEvent = dragEvent ? dragEvent : window.event;
		setElement.mouseX = dragEvent.clientX;
		setElement.mouseY = dragEvent.clientY;
		setElement.dragElementStart(setElement, dragX, dragY);
		document.onmousemove = getDrag._dragElement;
		document.onmouseup = getDrag._dragEnd;
		return false;
	},
	_dragElement : function(dragEvent) {
		var setElement = getDrag._setElement;
		var dragX = parseInt(setElement.style.left);
		var dragY = parseInt(setElement.style.top);
		dragEvent = dragEvent ? dragEvent : window.event;
		setElement.style.left = dragX + (dragEvent.clientX - setElement.mouseX) + 'px';
		setElement.style.top = dragY + (dragEvent.clientY - setElement.mouseY) + 'px';
		setElement.mouseX = dragEvent.clientX;
		setElement.mouseY = dragEvent.clientY;
		setElement.dragElement(setElement, dragX, dragY);
		return false;
	},
	_dragEnd : function() {
		var setElement = getDrag._setElement;
		var dragX = parseInt(setElement.style.left);
		var dragY = parseInt(setElement.style.top);
		setElement.dragEnd(setElement, dragX, dragY);
		document.onmousemove = null;
		document.onmouseup = null;
		getDrag._setElement = null;
	}
};

var dragable = getDrag.attach(document.getElementById('form'));

<div id="form">
	<textarea></textarea>
</div>
Ответить с цитированием