0

これは、このページの議論の続きです: Geolocation Google Maps Links jQuery

ユーザーがリンクをクリックしたときに、navigator.geolocation を介して saddr を設定する必要があります。以下のコードでこれを実現できますが、href を置き換えた後、リンクが機能しません。作成したリンクをアドレス バーに貼り付けると、Google マップが開き、正しいコースが表示されますが、それ以外の場合はリンクが機能しません。

リンクが押されるたびに href が置き換えられていると思います。スクリプトの最後にリンクを開くにはどうすればよいですか?

編集:ダンカンが提供するソリューション、作業スクリプトが表示されるようになりました

    $("a.geo").click(function(e) {               
        if (navigator && navigator.geolocation) {
            navigator.geolocation.getCurrentPosition($.proxy(getLoc, $(this)));
            e.preventDefault();
        }
        });

        function getLoc(position) {                     
            var geoLat = position.coords.latitude;
            var geoLon = position.coords.longitude;
            document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true";

        }
4

2 に答える 2

1

したがって、現在のページの場所を"http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854に更新することは、本当にやりたいことではありません。 &dirflg=w&sensor=true"

クリック イベント ハンドラー内から呼び出される関数からクリック イベントをトリガーする (複雑で再帰的) 代わりに、次のようにしてください。

document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true";
于 2012-06-14T10:13:01.060 に答える
1

変えようとする

$(a.geo).trigger('click');

$("a.geo").trigger('click');
于 2012-06-14T09:05:47.253 に答える