Выражение внутри объекта - Javascript - PullRequest
2 голосов
/ 31 января 2012

Я не думаю, что это возможно из того, что я прочитал, но есть ли возможность проверить, равен ли мой маркер карты нулю в следующем коде?Я читал кое-что о прототипах, но я не уверен, что это то, что мне нужно использовать.Вот код:

this.currentLocation = function(latitude, longitude) {
    if (loc_marker != null) {
        loc_marker.setPosition(new google.maps.LatLng(latitude, longitude);
    }
    else {
        var loc_marker = new google.maps.Marker({
            position: new google.maps.LatLng(latitude, longitude),
            title: "Here"
        });
        loc_marker.setMap(map); 
    }           
};

Я пытаюсь перемещать маркер на карте Google каждый раз, когда меняется местоположение.Я хочу проверить, был ли установлен маркер, и если он будет установлен, я просто изменю положение с помощью setPosition ();

Если у вас есть какие-либо предложения, я действительно буду признателен за это!

Ответы [ 3 ]

2 голосов
/ 31 января 2012

Вам нужно будет сделать loc_marker «глобальной» переменной, то есть переменная будет указывать на один и тот же объект каждый раз, когда вызывается функция.В приведенном выше коде вы только создадите другую локальную переменную в области действия функции.Попробуйте что-то вроде:

var loc_marker = null;
this.currentLocation = function(latitude, longitude) {
    if (loc_marker != null) {
        loc_marker.setPosition(new google.maps.LatLng(latitude, longitude);
    }
    else {
        loc_marker = new google.maps.Marker({
            position: new google.maps.LatLng(latitude, longitude),
            title: "Here"
        });
        loc_marker.setMap(map); 
    }           
};
2 голосов
/ 31 января 2012

Все следующее сделает то, что вы ищете ...

if (loc_marker != null) {  //Tests for null and for undefined
if (loc_marker === null) { //Tests for null
if (typeof loc_marker === 'object' && loc_marker === null) {  //Another null test, albeit redundant
if (typeof loc_marker === 'undefined') {  //Tests for undefined
if (loc_marker) { //Test for a defined non-null value

Тем не менее, где на самом деле определено loc_marker? Похоже, вы пытаетесь определить его в блоке else (, хотя JavaScript не работает таким образом ).

Сохраните для того места, где вы декларируете loc_marker, ваш код должен работать нормально.

Надеюсь, это поможет,

Пит

0 голосов
/ 31 января 2012

вместо

if (loc_marker != null) {

попробовать

if (typeof loc_marker != 'undefined') {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...