1 Востаннє редагувалося Faraon (11.01.2015 01:30:39)

Тема: if isset в js

В PHP є таку штука як isset? наприклад:

if(isset($_GET['id']))
{
echo "+++";
}
else
{
echo "---";
}

а як таке можна реалізувати на js? Наприклад якщо ми визиваємо функцію id то нам видає одне, а якщо функціє не визивається то інше?!

2

Re: if isset в js

В PHP можна є таку штука

*PARDON*

3

Re: if isset в js

Перед тим як щось писати, прочитай в голос те що написав своїй мамі (чи кого можеш швидко дістати) і перевір чи вона зрозуміла.

А щодо питання - то в javascript всі змінні set, вони просто мають значення undefined.

4

Re: if isset в js

bunyk написав:

Перед тим як щось писати, прочитай в голос те що написав своїй мамі (чи кого можеш швидко дістати) і перевір чи вона зрозуміла.

А щодо питання - то в javascript всі змінні set, вони просто мають значення undefined.

Пробачте, виправив. В javascript мені потрібно перевіряти чи викликається функція, якщо так то виконується один код, а якщо ні то виконується інший.

5

Re: if isset в js

if (id !== undefined) {
 //+++
} else {
// ---
}
Подякували: Faraon1

6 Востаннє редагувалося Faraon (11.01.2015 01:47:45)

Re: if isset в js

Replace написав:
if (id !== undefined) {
 //+++
} else {
// ---
}

Дякую. Я так і робив, але цілий час мені видає +++

 function setPosition(obj, x, y) {    

        if (loc !== undefined) {
    
alert("+++");

        } else {
            
            alert("---");

        }
}

7

Re: if isset в js

ну у вас loc взагалі не визначено.
Тоді якось так:

 function setPosition(obj, x, y) {    
 
        if (typeof(loc) !== 'undefined') {
    
alert("+++");
 
        } else {
            
            alert("---");
 
        }
}
Подякували: Faraon1

8

Re: if isset в js

Replace написав:

ну у вас loc взагалі не визначено.
Тоді якось так:

 function setPosition(obj, x, y) {    
 
        if (typeof(loc) !== 'undefined') {
    
alert("+++");
 
        } else {
            
            alert("---");
 
        }
}

Прошу вибачення з ате що Вас путаю. Так теж нічого не виходить!
Я краще все спочатку опишу. Є силка:

<a href='#' onclick=loc($url_go);return false> GO </a>

коли ми на неї кликаємо то має видавати --- , а коли ми на неї не кликаємо то має видавати +++. В обох випадках ми спочатку викликаємо функцію setPosition.

 function setPosition(obj, x, y) {    
 
        if (typeof(loc) !== 'undefined') {
    
alert("+++");
 
        } else {
            
            alert("---");
 
        }
}

9 Востаннє редагувалося Replace (11.01.2015 02:09:23)

Re: if isset в js

Мені не зрозуміти вашої логіки. Особливо

а коли ми на неї не кликаємо то має видавати +++

А в який момент часу це буде відбуватись?

В обох випадках ми спочатку викликаємо функцію setPosition.

Це як взагалі?

10 Востаннє редагувалося Faraon (11.01.2015 02:17:02)

Re: if isset в js

Я в браузерці роблю рух персонажа в точку натиску миші (це крок 1).
ЗРОБИВ!

var img = document.getElementById('pers_xy');  //отримуєм дані про картинку яка знаходиться під id pers_xy щоб ми змогли нею керувати
var min_top = document.getElementById('top_right').offsetHeight; //отримуєм висоту блоку яку потрібно не враховувати в переміщення обєкта

document.getElementById("mapa").onclick = function(event) {
    setPosition(img, event.clientX, event.clientY);
}

 function setPosition(obj, x, y) {    


    var vidstan_x = x - <?php echo $row_users['x']; ?> ;//знаходимо відстань між початковою точкою по х та кінцевою точкою по х. Якщо число буде відємним то ми перемножим пізніше на -1
    var vidstan_y = y - <?php echo $row_users['y']; ?>; //знаходимо відстань між початковою точкою по у та кінцевою точкою по у + віднімаємо висоту верхнього блоку. Якщо число буде відємним то ми перемножим пізніше на -1
    
    if(vidstan_x<0) vidstan_x *= -1;
    if(vidstan_y<0) vidstan_y *= -1;
    
    var vidstan = Math.sqrt(vidstan_x*vidstan_x) + Math.sqrt(vidstan_y*vidstan_y); // вичисляю відстань від початку розміщення обєкта до кінцевої його точки координат
     var speed = vidstan * 10;  // вичисляємо швидкість переміщення
     
        $( "#pers_xy" ).stop(); // припиняє  запущену анімацію
        
    
        //відтворюємо анімацію + вираховуєм точні координати точок куди має переміститися персонаж + віднімаємо висоту та ширину обєкта так щоб курсор знаходився знизу
        $( "#pers_xy" ).animate({
            left: (x - 13)+'px',
            top: (y - 42 - min_top)+'px'
        }, speed);


    //отправка гет запита без перезагрузки сторінки
       $.ajax({
                type: "GET",
                url: "game.php",
                data: "x="+(x - 13)+"&y="+(y - 42 - min_top),
        });

        $("#update_us").load("game.php #update_us"); // обновлямо без перезагрузки сторінки блок update_us


  
  }

тепер приступаю до наступного кроку (крок 2).
Розмістив посередині екрану силку/картинку:

<a href='#' onclick=loc($url_go);return false><img src='img/$img_icon'></a>

коли я на неї кликаю то персонаж переміщається в ту точку картинки де я і кликнув, а я хочу зробити щоб коли ми кликнули по картинці тим самим визвали функцію loc наш персонаж переміщався не в саму точку натиску миші, а лише до початку картинки. Щоб таке реалізувати я надумав просто перевіряти якщо є клик по картинці то ми викликаєм(код 1 +++) переміщення обєкта по координатах з урахуванням віднімання ширини висоти картинки щоб він він на неї не вилазив, а якщо клику по картинці немає то ми викликаєм інший код (код 2 ---).
Так краще пояснив?

11

Re: if isset в js

Тю, заведіть логічну змінну зі значенням false і змінюйте її в loc. І буде вам щастя.

Подякували: Faraon, bunyk2

12 Востаннє редагувалося Faraon (11.01.2015 02:24:04)

Re: if isset в js

quez написав:

Тю, заведіть логічну змінну зі значенням false і змінюйте її в loc. І буде вам щастя.

*SCRATCH* для чого змінювати?

13

Re: if isset в js

Щоб відмітити, що функцію викликали.

14

Re: if isset в js

Так, все працює. Дякую!