有人可以帮忙看看这个百度距离统计插件 统计的超公里数和点击别的选项的情况下代码插件的问题
问题描述:
页面功能测试地址
问题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>