2017-06-13 5 views
2

私は地図上にマーカーを持っています。 JSONの日付に応じてマーカーの不透明度を設定しました。インフォメーションウィンドウのボタンをクリックした後にGoogleマップのマーカープロパティを変更する

マップがロードされると、マーカーの一部が0.5不透明になり、一部が1不透明になります。

マーカーの情報ウィンドウにはボタンがあります。このボタンをクリックすると、不透明度を1に変更したいと考えています。

以下は私のコードの一部です。すべてのヘルプははるかにあなたがdata-entry-idに保存されているマーカーのIDを持っているので、あなたが使用することができ


//For every item in JSON 
$.each(dbJSON, function(key, data) { 

    var opacity = 1; 
    var today = new Date(); 
    var fadeDate = new Date(data.last_rated); //get the date last rated     
    fadeDate.setDate(fadeDate.getDate() + 1); //and add 1 date to it to specify the day when the icon should fade 

    if(Date.parse(today) > Date.parse(fadeDate)) { 
     console.log('fade'); 
     opacity = 0.5; 
    } else { 
     console.log('show'); 
     opacity = 1; 
    } 

    var postal_town = data.location; 
    geocoder.geocode({ 'address': postal_town}, function(results, status) { 
     //... 
     console.log(opacity); 

     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location, 
      title: data.manufacturer_name, 
      icon: image, 
      rating: data.rating, 
      opacity: opacity 
     }); 

     markers[data.id] = marker; 

     marker.addListener('click', function() { 

      var contentString = '<div id="content">'+ 
       '<h1>' + data.manufacturer_name + '</h1>' + 
       '<button id="seen-it" data-rating="' + data.rating + '" data-entry-id="' + data.id + '">Seen it</button>' + 
       '<p><strong>Rating: </strong><span id="rating">' + markers[data.id].rating + '</span></p>' + 
       '</div>'; 

      infowindow.setContent(contentString); 
      infowindow.open(map, marker); 
     }); 
    }); 
}); 

//Do something when the #seen-it button is clicked 
$(document).on('click', '#seen-it', function(event){ 
    //... 
}); 

答えて

1

をいただければ幸いです

markers変数はからアクセス可能であると仮定するとは、あなたのハンドラー

$(document).on('click', '#seen-it', function(event){ 
    var markerId = $(this).data('entry-id'); 
    markers[markerId].setOpacity(1); 
}); 
+0

それは機能し、私は完全になぜそうは分かりません! :)ありがとう –

+0

@OliverEvansはあなたに混乱する部分を教えてくれて、私は説明しようとします。 –

+0

私はそれを得ない。オブジェクトの不透明度の値を変更していて、setOpacityメソッドを使用していないと思っていました。ありがとうございます –

関連する問題