Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не производит действие вычитания повторно?????
 
 автор: UnlikeAO   (09.07.2009 в 17:32)   письмо автору
 
 

Есть код:

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..
Не понимаю в чем дело!

  Ответить  
 
 автор: sim5   (09.07.2009 в 17:44)   письмо автору
 
   для: UnlikeAO   (09.07.2009 в 17:32)
 

var x=document.getElementById('free').style.left;
alert(x);
alert(Number(x));

  Ответить  
 
 автор: UnlikeAO   (09.07.2009 в 18:00)   письмо автору
 
   для: sim5   (09.07.2009 в 17:44)
 

Я понял что это ты имеешь в виду, это не прокатывает, уже пробовал, и с помощью parseInt() тоже пробовал преобразовывать.. все равно та же проблема

  Ответить  
 
 автор: sim5   (09.07.2009 в 18:18)   письмо автору
 
   для: UnlikeAO   (09.07.2009 в 18:00)
 

А с чего вы решили, что все эти функции преобразуют, например, 40рх в 40?

  Ответить  
 
 автор: UnlikeAO   (09.07.2009 в 18:52)   письмо автору
 
   для: 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);
        

  Ответить  
 
 автор: sim5   (09.07.2009 в 19:29)   письмо автору
 
   для: UnlikeAO   (09.07.2009 в 18:52)
 

Я не знаю чего вы там двигаете, но если возвращаемое, это строка типа 40рх, то надо хотя бы:
x = parseInt(document.getElementById('id').style.left.match(/\d*/));
x += 5;
document.getElementById('id').style.left = x;
Вы применяете функции совсем, видимо, не читая о том, как они работают, и еще обижаетесь, когда вам говорят причину, о которой вы собственно и спрашивали.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования