私がしようとしているのは、trがクリックされたときに、コードの変数を含むGoogleマップのアドレスである新しいタブをアドレスで開きます。配列ワークのループ内で.click関数の内部にリンクを張るには?
<tr>
<td>
<span class="place-address">A Street, 608, City</span>
<a class="link-maps"></a>
</td>
</tr>
<tr>
<td>
<span class="place-address">A Street, 998, City</span>
<a class="link-maps"></a>
</td>
</tr>
<tr>
<td>
<span class="place-address">A Street, 226, City</span>
<a class="link-maps"></a>
</td>
</tr>
とjQueryでこのJavaScriptを、::
私は、このHTML持っ
var addressesArray = [];
var linkMapsArray = [];
var placeAddress = $(".place-address").each(function() {
var addresses = $(this).text();
addressesArray.push(addresses);
});
var linkMaps = $(".link-maps").each(function() {
var links = $(this);
linkMapsArray.push(links);
});
var placesAddresses = addressesArray;
$(function() {
getLocation();
});
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(openMaps, showError);
} else {
alert("Your navigator doesn't support geolocation.");
}
}
function openMaps(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
for(j = 0; j < placesAddresses.length; j++) {
var address = placesAddresses[j];
linkMapsArray[j].closest("tr").click(function() {
window.open("https://www.google.com/maps/dir/" + latitude + "," + longitude + "/" + address + "/")
});
}
}
//omitted showError function
私はリンクマップを表示したくないが、彼らは空としている理由、それはですCSSのdisplay: none
これの結果は、私がクリックしても、最後のアドレスにいつも移動します。しかし、私はCSSでdisplay: block
とともに、代わりにクリック機能の次のコードを、置く、それは動作しますが、リンクをクリックした場合にのみ、しかし、TRをクリックしたときに私はそれが仕事をしたいとき:
linkMapsArray[j].text(address);
linkMapsArray[j].attr("href", "https://www.google.com/maps/dir/" + latitude + "," + longitude + "/" + address + "/");
PS:この最後のコードでは新しいタブは開かないが、正しくリダイレクトされていることはわかっている。
どのようにあなたが呼び出しているopenMaps? 'position'パラメータはどこから来ますか? – James
私は位置を取得する関数を置くコードを編集しました – allansanfer