Передача значений в цикл If () - PullRequest
0 голосов
/ 22 октября 2011

Я использую плагин jQuery, который имеет обработчик событий, функция возврата которого дает мне объект HTMLImageElement в качестве свойства события e.imageTarget.Источником этого e.imageTarget является набор <img> внутри конкретного <div>.

Проблема: Я хочу передать пару чисел 42.345573, -71.098326 в if() цикл в коде, показанном ниже.Как я могу это сделать?

Мои неудачные попытки: Создать <div>, содержащий 2 значения, и поместить его после захвата <img>.Затем из цикла if() используйте jQuery .next() на <img>, чтобы выбрать <div>.Однако мой код выбора jquery, похоже, не работает!Я попробовал это с помощью console.log(e.imageTarget.previous()); и получил ошибку Uncaught TypeError: Object #<HTMLImageElement> has no method 'previous'.Возможно ли использование трансверсальных селекторов jQuery DOM?

Куча изображений, извлекаемых из :

<img src="http://www.google.com/images/experiments/nav_logo78.png">
<img src="http://www.google.com/images/experiments/nav_logo78.png">
<img src="http://www.google.com/images/experiments/nav_logo78.png">
<div id="lat">42.345573</div>
<div id="lng">-71.098326</div>

e.imageTarget: <img style=​"display:​ block;​ width:​ 170px;​ height:​ 323px;​ position:​ absolute;​ top:​ 0px;​ left:​ 130px;​ opacity:​ 1;​ " src=​"http:​/​/​www.google.com/​images/​experiments/​nav_logo78.png" width=​"170" height=​"323">​

Код:

Galleria.ready(function(options) {
    // Load Streetview after image related to Streetview has finished loading
    this.bind("loadfinish", function(e) {
        if(e.imageTarget.src.search('png') != -1) {
            console.log(e.imageTarget);
            // Create Street View
            var fenway = new google.maps.LatLng(42.345573,-71.098326);
            var panoOptions = {
                position: fenway
          };
            var panorama = new google.maps.StreetViewPanorama(document.getElementById("streetview"), panoOptions);
        }
    });
});

Дополнительная информация Я не могу просто создать переменную, установить для нее нужные значения и использовать переменную внутриif() цикл, потому что мне нужно будет создать уникальную переменную для каждого имеющегося у меня набора данных.Количество точек данных меняется в зависимости от полученных результатов, и я не пытался создавать динамически именованные переменные, такие как marker1, marker2 и т. Д.

1 Ответ

1 голос
/ 22 октября 2011

Если вы хотите использовать jQuery, вы можете добавить атрибуты к элементу img, содержащему значения 'lat' и 'lng'.

<img src="path/image.png" data-coordinates="{lat:42,lng:-71}">

Затем с помощью jQuery:

//pass your image selector, just using 'img' for this example's sake
var coordinates = $('img').data("coordinates");
// coordinates.lat = 42
// coordinates.lng = -71

Если вы не хотите использовать jquery, вы можете добавить значения 'lat' и 'long в качестве отдельных атрибутов данных в элемент img, а затем использовать функцию getAttribute javascript для получения значений.

<img src="path/image.png" data-lat="41" data-lng="-71">

Затем с помощью JavaScript:

e.imageTarget.getAttribute("data-lat") // '42'
e.imageTarget.getAttribute("data-lng") // '-71'

Кроме того, вы, вероятно, получаете ошибку с e.imageTarget.previous(), потому что это не объект jQuery. Вам нужно было бы сделать $(e.imageTarget).previous().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...