Показать сообщение отдельно
  #1 (permalink)  
Старый 07.03.2012, 00:59
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

И снова драг энд дроп :)
Есть код
main.prototype.drag = function(data) {
var drag = this.obj;
	drag.onmousedown = function(e) {
		var self = this;
		e = mj().getEvent(e);
		drag.style.position = 'absolute';
		var coords = mj().getCoords(self);
		var shiftX = e.pageX - coords.left;
		var shiftY = e.pageY - coords.top;
		document.onmousemove = function(e) {
			if(data['move']) data['move'](); /////ПРОБЛЕМА ТУТ //////
			drag.style.left = e.pageX - shiftX + 'px';
			drag.style.top = e.pageY - shiftY + 'px';
		};
	};
	drag.onmouseup = function() {
		drag.style.cursor = 'default';
		document.onmousemove = document.onmousemove = document.onmouseup = document.ondragstart = document.body.onselectstart = null;
	};
	drag.ondragstart = function() { return false; };
}


Как видно в data передаётся функция, которая должна выполняться только во время того, когда элемент перетаскивают. Но чот не так с этой функцией, а именно то, что она выполняется во время обычного движения мыши, а не нажатия+движения. Не пойму что именно( Подскажите пожалуйста, как её исправить?
Ответить с цитированием