有人可以帮忙看看这个百度距离统计插件 统计的超公里数和点击别的选项的情况下代码插件的问题

有人可以帮忙看看这个百度距离统计插件 统计的超公里数和点击别的选项的情况下代码插件的问题

问题描述:

页面功能测试地址
问题1:当我第一次输入起点和终点的时候公里是超了的,当我重新输入两个不超公里的的地址的时候,已经统计出来的超公里数不会取消,请问这个应该怎么解决呢

问题2.当我输入起点和终点是超公里数的时候,我点击打包物品 拆装物品 其他 楼梯 这4个插件之后,会有一瞬间超公里数会重新统计,请问这应该怎么解决呢

还没搞好?不超过的时候你要清空chao控件的值


         if (over_km > 0) {
                $('#chao').html(',已超出' + over_km + '公里');
                var chaoprice = over_km * follow_money;
                var sum = "158";
                var sumprice = parseFloat(sum) + chaoprice;
                $('#total_num').val(sumprice);
                $('#price').text(sumprice);
                $('#dist').val(output);
            } else $('#chao').html('');

第二个问题你刷新了页面,直接计算就好了吧,还刷新页面一次干嘛?应该也是上面chao未清空的问题,你改成上面后再试试看

并不是不改变,而是你的input用的blur函数,当你改用onchange之后,就会发现,公里数会实时改变

第一个问题,你用得input控件当你第一次超过时给chao赋值了 但是第二次没有超过 你就没管chao这个控件了 清空下即可
第二个问题,你从打包物品等页面返回的时候 触发了doSearch 这个事件

改了2除,searchComplete最后增加localStorage缓存的

info,chao 2个span控件下增加了一段初始化的代码

 <script>
    var searchComplete = function (results) {
        if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        var output = "" + document.getElementById('pickupAddress').step + "" + document.getElementById('deliveryAddress').step + "";
        output += "";
        ////////////////////////////
        var v = plan.getDistance(true);
        var m = /^(\d+(\.\d+)?)米$/.exec(v);
        if (m)
            v = (parseFloat(m[1]) / 1000) + '公里';
        output += v + "";
        ////////////////////////////


        document.getElementById('info').innerHTML = output;
        var limit = "10";
        var follow_money = "5.00";
        var over_km = Math.round((parseFloat(output) - limit), 2);


        $('#chao').html(over_km > 0 ? ',已超出' + over_km + '公里' : '');
        var chaoprice = over_km > 0 ? over_km * follow_money : 0;
        var sum = "158";
        var sumprice = parseFloat(sum) + chaoprice;
        $('#total_num').val(sumprice);
        $('#price').text(sumprice);
        $('#dist').val(output);


        //localStorage键名称
        var key = document.getElementById('pickupAddress').value + '-' + document.getElementById('deliveryAddress').value;
        //将百度结果缓存到localStorage中,每项值用||分隔
        localStorage.setItem('key', output + '||' + $('#chao').html() + '||' + $('#total_num').html() + '||' + $('#price').html() + '||' + $('#dist').html())

    };
</script>
<span id="info"></span>
<span id="chao"></span>
<script>
    +function () {
        var key = document.getElementById('pickupAddress').value + '-' + document.getElementById('deliveryAddress').value;
        var value = localStorage.getItem(key);
        if (value) {
            var arr = value.split('||');
            $('#info').val(arr[0]);
            $('#chao').val(arr[1]);
            $('#total_num').val(arr[2]);
            $('#price').val(arr[3]);
            $('#dist').val(arr[4]);
        }
    }()
</script>