|
|
|
| Есть код:
function Poss(Direc)
{
var x=document.getElementById('free').style.left;
var y=document.getElementById('free').style.top;
switch (Direc)
{
case "left":
x=Number(x)-5;
alert(x);
xx=x+"px";
document.getElementById('free').style.left=xx;
break;
}
var xc=document.getElementById('xcoord');
xc.value=x;
yc.value=y;
clear(x);
|
При первом вызове функции выдает -5, при втором NaN..
Не понимаю в чем дело! | |
|
|
|
|
|
|
|
для: UnlikeAO
(09.07.2009 в 17:32)
| | var x=document.getElementById('free').style.left;
alert(x);
alert(Number(x)); | |
|
|
|
|
|
|
|
для: sim5
(09.07.2009 в 17:44)
| | Я понял что это ты имеешь в виду, это не прокатывает, уже пробовал, и с помощью parseInt() тоже пробовал преобразовывать.. все равно та же проблема | |
|
|
|
|
|
|
|
для: UnlikeAO
(09.07.2009 в 18:00)
| | А с чего вы решили, что все эти функции преобразуют, например, 40рх в 40? | |
|
|
|
|
|
|
|
для: sim5
(09.07.2009 в 18:18)
| | Ок, я пользуюсь этим форумом очень давно (в основном в разделе для PHP) и очень им даволен. До сих пор ответы на все вопросы нахожу именно здесь, и то что мне больше всего устраивает, это то что почти в каждом топике, на вопрос,всегда есть исчерпывающий ответ (PHP), а не ответ который вызывает еще 10 вопросов.. И я хочу чтоб в топиках созданных мной, был в конце исчерпывающий ответ. Так вот, для тех кто сюда зайдет, вот код для перемещения обьекта по странице, АБСОЛЮТНО ОДИНАКОВО РАБОТАЮЩИЙ на ВСЕХ браузерах
document.getElementById('free').style.left=document.getElementById('xcoord').value;
document.getElementById('free').style.top=document.getElementById('ycoord').value;
// ycoord, xcoord - Id текстовых полей
// free - id элемента который я двигаю
function Poss(Direc)
{
var x=document.getElementById('xcoord').value;
var y=document.getElementById('ycoord').value;
switch (Direc)
{
case "left":
x=x-5;
var xx=x+"px";
document.getElementById('free').style.left=xx;
break;
case "right":
x=Number(x)+5;
var xx=x+"px";
document.getElementById('free').style.left=xx;
break;
case "top":
y=y-5;
var yy=y+"px";
document.getElementById('free').style.top=yy;
break;
case "bottom":
y=Number(y)+5;
var yy=y+"px";
document.getElementById('free').style.top=yy;
break;
}
var xc=document.getElementById('xcoord');
var yc=document.getElementById('ycoord');
xc.value=parseInt(x);
yc.value=parseInt(y);
|
| |
|
|
|
|
|
|
|
для: UnlikeAO
(09.07.2009 в 18:52)
| | Я не знаю чего вы там двигаете, но если возвращаемое, это строка типа 40рх, то надо хотя бы:
x = parseInt(document.getElementById('id').style.left.match(/\d*/));
x += 5;
document.getElementById('id').style.left = x;
Вы применяете функции совсем, видимо, не читая о том, как они работают, и еще обижаетесь, когда вам говорят причину, о которой вы собственно и спрашивали. | |
|
|
|