地名连级选择

区域按钮悬停展示省名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(document).ready(function(){
<!-- .region_btn 区域按钮的class -->
$(".region_btn").mouseover(function(e){
let code = $(this).attr('id')
$(".r_box1").empty()
let pName = getRName(code)
console.log(pName)
for(i in pName){
var str = '<p id='+pName[i].code+' onmouseout="hide_box2()" onclick="mapJump(this)" onmouseover="click_pro_btn(this,'+pName[i].code+')">'+pName[i].name+'</p>'
$(".r_box1").append(str)
}
var y = $(this).offset().top
var x = $(this).offset().left
var offsety = $(".r_box1").height()
<!-- r_box1是展示省名称的div -->
$(".r_box1").show()
$(".r_box1").css('top',y-offsety)
$(".r_box1").css('left',x)
})
$(".region_btn").click(function(e){
let name = $(this).find('p').text()
$(".r_box1").hide()
// 地图跳转到区域代码
})
})

获取省名、市名的接口,返回的对象中code为id,name为名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getRName(code){
var name = ''
$.ajax({
url:'http://192.168.101.72:8888/getMapInfo.json?parent_code='+code,
type:"get",
dataType:"json",
async: false,
     contentType: "application/json; charset=utf-8",
success:function(data){
name = data
console.log('getRName',data)
}
})
return name
}

在省名称鼠标滑过时触发的事件,展示该省下各个市的名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function click_pro_btn(obj,code){
console.log($(obj))
let pName = getRName(code)
$(".r_box2").empty()
for(i in pName){
let str = '<span id='+pName[i].code+' onclick="click_city_btn('+pName[i].name+')">'+pName[i].name+'</span>'
$(".r_box2").append(str)
}
let y = $(obj).offset().top
let x = $(obj).offset().left
let h = $(window).height()
console.log(y)
var offsety = $(".r_box2").height()
<!-- 市名称展示位置 -->
if(y>700){
$(".r_box2").show()
$(".r_box2").css('top',y-offsety+40)
$(".r_box2").css('left',x+100)
}else{
$(".r_box2").show()
$(".r_box2").css('top',y)
$(".r_box2").css('left',x+100)
}
}

关闭展示市名称的div

1
2
3
4
5
6
7
8
9
10
11
function hide_box2(){
$(".r_box2").hide()
}

// 点击省名称,地图跳转到省
function mapJump(obj){
let code = $(obj).attr('id')
var name = $(obj).text()
// 地图跳转到省代码
console.log(name)
}