Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перемещение элементов (https://javascript.ru/forum/misc/26191-peremeshhenie-ehlementov.html)

(Sandr) 29.02.2012 17:25

Перемещение элементов
 
Всем здрасте) Помогите выявить ошибку, пожалуйста. Пишу драг&дроп приложение, но возникают проблемы..

function func(source) { return new fun(source); }
function fun(source) { 
	this.source = source;
	this.obj = document.getElementById(this.source);
	return this;
}
fun.prototype.move = function() {
	moveObj = this.obj;
	moveObj.onmousedown = function(e) {
		var self = this;
		e = getEvent(e);
		var coords = getCoords(this);
		var shiftX = e.pageX - coords.left;
		var shiftY = e.pageY - coords.top;
		document.onmousemove = function(e) {
			moveObj.style.position = 'absolute';
			moveObj.style.left = e.pageX - shiftX + 'px';
			moveObj.style.top = e.pageY - shiftY + 'px';
		}
	}
	document.onmouseup = function() {
		document.onmousemove = moveObj.onmouseup = null;
	}
	moveObj.ondragstart = function() { return false; }
}

window.onload = function() {
	func('block1').move();
	func('block2').move();
}


А именно проблемы в том, что элемент с ид block1 не перемещается никуда. А с block2 всё нормально. Не пойму в чём проблема..

Skipp 29.02.2012 17:53

Ну вы и нагородили.
Попробуйте убрать func('block2').move(); и подумайте почему же функция работает только с последним элементом, поменяйте их местами и тоже подумайте:)

(Sandr) 29.02.2012 18:06

Skipp,
насчёт того, что я нагородил, это по дефаулту у меня пока что))
А вот из-за чего у меня проблемы я пока понять не могу(

(Sandr) 29.02.2012 18:14

Skipp,
да и местами менял их. Работает только 2й. Возможно последний вызов функции переопределяет this.obj . Но если это так, тогда как же мне это исправить?

nikita.mmf 29.02.2012 18:58

Где var???
var moveObj = this.obj;

(Sandr) 29.02.2012 19:25

nikita.mmf,
:dance: УРА!!))) Спасибо за помощь:thanks:


Часовой пояс GMT +3, время: 01:31.