Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Invalid argument в IE (https://javascript.ru/forum/misc/30208-invalid-argument-v-ie.html)

FoxTrix 27.07.2012 20:06

смысл в этой функции есть, убирать её не нужно, нужно чтобы IE перестал к ней предираться

FoxTrix 27.07.2012 20:19

ругается он на
div.style.left = (x - left) + 'px';

vadim5june 27.07.2012 20:32

Цитата:

Сообщение от FoxTrix (Сообщение 192172)
ругается он на
div.style.left = (x - left) + 'px';

а где left определен?

FoxTrix 27.07.2012 20:33

выше
left = div.offsetLeft;
left = x - left;

FoxTrix 27.07.2012 20:47

может ему + 'px' не нравится?

vadim5june 27.07.2012 20:51

Цитата:

Сообщение от FoxTrix (Сообщение 192191)
может ему + 'px' не нравится?

я думаю с left какие то проблемы-попробуйте вывести чему left равно

FoxTrix 27.07.2012 20:55

кажется нашёл в чём проблема, после
event.pageX = event.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);

и
x = event.pageX;

алерт х всё равно undefined =(

vadim5june 27.07.2012 20:59

а где у Вас традиционные
e=e||window.event;
а у Вас просто event

bes 27.07.2012 21:19

Попробуйте так
if(event.pageX == null) 
		{ 
    			var html = document.documentElement
    			var body = document.body

    			x = event.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
		} else
		x = event.pageX;

FoxTrix 27.07.2012 21:30

исправил, получилось вот так
function move(div) 
{
	document.onmousedown = function() {return false}
	div.style.cursor = 'move';
	document.onmousemove = function(e)
	{
		e=e||window.event;
		if(e.pageX == null) 
		{ 
    			var html = document.documentElement
    			var body = document.body

    			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
		}
		x = e.pageX;
		left = div.offsetLeft;
		left = x - left;
		var shelf = document.getElementById('shelf');
		var slide = div.offsetWidth / 2;
		var id = 0;
		var bookId;
		var tmp = 0;
		var move = 0;
		document.onmousemove = function(e)
		{
			e=e||window.event;
			if(e.pageX == null) 
			{ 
    				var html = document.documentElement
    				var body = document.body

    				e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
			}
			div.style.zIndex = 100;
			x = e.pageX;
			div.style.left = x - left + 'px';

теперь див двигается, но не отпускается >_< как я ненавижу IE


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