Javascript函数不返回值

问题描述 投票:1回答:1

我有一个java脚本函数返回一个字符串值,当我在按钮上调用此函数时单击它不返回任何内容。

这是我的功能代码:

function PlotMap(StartLat, StartLog, EndLat, EndLog) {

var map;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var llList = "";

function initMap() {

    map = new google.maps.Map(document.getElementById('map'), {
        center: { lat: StartLat, lng: StartLog },
        zoom: 15
    });


    directionsDisplay = new google.maps.DirectionsRenderer();
    directionsDisplay.setMap(map);
    calcRoute();

} //End function initMap


function calcRoute() {
    var start = new google.maps.LatLng(StartLat, StartLog);
    var end = new google.maps.LatLng(EndLat, EndLog);
    var bounds = new google.maps.LatLngBounds();

    bounds.extend(start);
    bounds.extend(end);
    map.fitBounds(bounds);

    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.TravelMode.DRIVING
    };

    directionsService.route(request, function (response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
            directionsDisplay.setMap(map);

            if (response.routes && response.routes.length > 0) {
                var routes = response.routes;
                for (var j = 0; j < routes.length; j++) {
                    var points = routes[j].overview_path;
                    var ul = document.getElementById("vertex");
                    for (var i = 0; i < points.length; i++) {
                        var li = document.createElement('li');
                        li.innerHTML = getLiText(points[i]);
                        ul.appendChild(li);
                        llList = llList + getLiText(points[i]) + " / ";
                    }
                }
            }
        } else {
            alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status);
        }
    });
} //End function calcRoute

function getLiText(point) {
    var lat = point.lat(),
        lng = point.lng();
    return "lat: " + lat + " lng: " + lng;
}


initMap();

return llList;}

在这里,我在asp.net页面上点击按钮调用此功能。

<script>

function ii() {

    var tt = PlotMap(26.547648, 81.529472, 26.612515, 81.354248);

    alert(tt);
}</script>

Asp.net页面代码:

<body>
<input id="Button1" type="button" value="button" onclick="ii();"/>
<div id="map" style="float: left; width: 70%; height: 400px;"></div>
<ul id="vertex">
    <li></li>
</ul>

一切正常,但功能不返回任何价值。请帮助我成为网络开发的新手。谢谢。

javascript asp.net
1个回答
0
投票

我测试了代码中的逻辑,看起来很合理。因为我能够让它返回你想要的刺痛,但不得不评论所有的谷歌地图逻辑。

虽然,我注意到,下面的if语句没有else语句,因此如果此语句返回false,则字符串将为空,并且您不会收到警报。

if (response.routes && response.routes.length > 0) {

也许尝试添加匹配的else声明:

} else { alert("No Routes"); }

这至少可以让您更深入地了解正在发生的事情。

以下是calcRoute函数中的新逻辑:

function calcRoute() {
    var start = new google.maps.LatLng(StartLat, StartLog);
    var end = new google.maps.LatLng(EndLat, EndLog);
    var bounds = new google.maps.LatLngBounds();

    bounds.extend(start);
    bounds.extend(end);
    map.fitBounds(bounds);

    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.TravelMode.DRIVING
    };

    directionsService.route(request, function (response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
            directionsDisplay.setMap(map);

            if (response.routes && response.routes.length > 0) {
                var routes = response.routes;
                for (var j = 0; j < routes.length; j++) {
                    var points = routes[j].overview_path;
                    var ul = document.getElementById("vertex");
                    for (var i = 0; i < points.length; i++) {
                        var li = document.createElement('li');
                        li.innerHTML = getLiText(points[i]);
                        ul.appendChild(li);
                        llList = llList + getLiText(points[i]) + " / ";
                    }
                }
            } else { alert("No Routes"); }
        } else {
            alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status);
        }
    });
} //End function calcRoute
© www.soinside.com 2019 - 2024. All rights reserved.