mobile-select
mobile-select copied to clipboard
关于updateWheels更新数据的问题
级联格式--json数据格式,我在使用时用的是二级联动的,里面的数据是向后台请求的,第一次请求的结果例子如下:[{id:1,value:a},{id:2,value:b}],在筛选条件改变时请求的数据格式:[{id:a,value:1,childs:[{id:1:value:a}]}],在第二次请求结束后使用updateWheels更新数据失败了,原代码大致如下: var toggle = true, mobileSelect5; $.ajax({ url: '。。。', data: { ... }, success: function(str) { if(toggle) { toggle=false; mobileSelect5 = new MobileSelect({ trigger: '#trigger5', title: '', wheels: [{ data: str }], callback: function(indexArr, data) {
}
})
}else{
mobileSelect5.updateWheels(str)
}
}
})
updateWheels 这个方法好像不行
之前老项目中应用的四级联动
//地区选择 var addrIndexCur = '';//地址上一次选中 var address = new MobileSelect({ trigger: '#address-picker', //必选,触发对象的id/class/tag wheels: [ //必选,数据源 {data:[ {id:'0',name:'省份'}, ]}, {data:[ {id:'0',name:'城市'}, ]}, {data:[ {id:'0',name:'县市'}, ]}, {data:[ {id:'0',name:'乡镇'}, ]}, ], title: '选择地区', ensureBtnColor: '#d53d3c', maskOpacity: 0.6, //遮罩透明度 position: [0,0,0,0], //初始化定位 connector: ' / ', triggerDisplayData: false, //非触发对象显示结果 keyMap: { //字段名映射,适用于字段名不匹配id,value,childs的数据格式 id:'id', value: 'name' }, onShow: function(e){ addrIndexCur = e.curIndexArr; }, transitionEnd: function(indexArr, data){//选择 $.each(indexArr, function(index, value){ if(addrIndexCur[index] != value){ if(index == 0){ if(data[index].id > 0){ loadCity(data[index].id); } address.updateWheel(1, [address.wheelsData[1].data[0]]); address.locatePosition(1,0); address.updateWheel(2, [address.wheelsData[2].data[0]]); address.locatePosition(2,0); address.updateWheel(3, [address.wheelsData[3].data[0]]); address.locatePosition(3,0); }else if(index == 1){ if(data[index].id > 0){ loadCounty(data[index].id); } address.updateWheel(2, [address.wheelsData[2].data[0]]); address.locatePosition(2,0); address.updateWheel(3, [address.wheelsData[3].data[0]]); address.locatePosition(3,0); }else if(index == 2){ if(data[index].id > 0){ loadTown(data[index].id); } address.updateWheel(3, [address.wheelsData[3].data[0]]); address.locatePosition(3,0); } return false; } }); addrIndexCur = indexArr; }, callback: function(indexArr, data){//确定 $('#province').val(data[0].id); $('#city').val(data[1].id); $('#county').val(data[2].id); $('#town').val(data[3].id); $('.address-show span').text(data[0].name + '/' + data[1].name + '/' + data[2].name + '/' + data[3].name); } });
//省份数据
function loadProvince(){
$.get(_apiUrl + '/diqu/sheng', function(result){
if(result.code == '00'){
result.data.unshift(address.wheelsData[0].data[0]);//添加默认选项
address.updateWheel(0, result.data);//重新渲染指定的轮子
}else{
layer.open({content:result.message, skin:'msg', time: 2, style: 'bottom:0;'});
}
});
};
//城市数据
function loadCity(province){
$.get(_apiUrl + '/diqu/shi', {
'sheng' : province || 0
}, function(result){
if(result.code == '00'){
result.data.unshift(address.wheelsData[1].data[0]);//添加默认选项
address.updateWheel(1, result.data);//重新渲染指定的轮子
}else{
layer.open({content:result.message, skin:'msg', time: 2, style: 'bottom:0;'});
}
});
};
//县市数据
function loadCounty(city){
$.get(_apiUrl + '/diqu/xian', {
'shi' : city || 0
}, function(result){
if(result.code == '00'){
result.data.unshift(address.wheelsData[2].data[0]);//添加默认选项
address.updateWheel(2, result.data);//重新渲染指定的轮子
}else{
layer.open({content:result.message, skin:'msg', time: 2, style: 'bottom:0;'});
}
});
};
//乡镇数据
function loadTown(county){
$.get(_apiUrl + '/diqu/zhen', {
'xian' : county || 0
}, function(result){
if(result.code == '00'){
result.data.unshift(address.wheelsData[3].data[0]);//添加默认选项
address.updateWheel(3, result.data);//重新渲染指定的轮子
}else{
layer.open({content:result.message, skin:'msg', time: 2, style: 'bottom:0;'});
}
});
};
loadProvince();