基于MVC方式實(shí)現(xiàn)三級聯(lián)動(dòng)(JavaScript)
更新時(shí)間:2017年01月23日 08:41:23 作者:小小令
這篇文章主要為大家詳細(xì)介紹了基于MVC方式實(shí)現(xiàn)三級聯(lián)動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了基于MVC三級聯(lián)動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
Html代碼:
<div class="box">
<select class="make">
<option>請選擇品牌</option>
</select>
<select class="model">
<option>請選擇車型</option>
</select>
<select class="car">
<option>請選擇車款</option>
</select>
</div>
js代碼:
<script src="jquery-1.8.3.min.js"></script>
<script src="car.make.js"></script>
<script src="car.car.js"></script>
<script src="car.model.js"></script>
<script>
//MVC與OOP模式
/*
* mvc編程思想
* model 模型 (數(shù)據(jù))
* controller 控制器
* view 視圖
* 下拉事件 由控制器處理
* 獲取數(shù)據(jù) 由模型處理
* 數(shù)據(jù)的顯示 由視圖處理
* 控制器 發(fā)布指令 調(diào)用模型獲取數(shù)據(jù)
*
* 控制器拿到數(shù)據(jù)后發(fā)布指令將數(shù)據(jù)交給視圖進(jìn)行顯示
*
*
* */
//定義一個(gè)控制器對象
var ctrl={
//初始化函數(shù)
init:function(){
this.createBrand();
},
//品牌函數(shù)
createBrand:function(){
//調(diào)用模型獲取數(shù)據(jù)
var data=model.getBrand();
//將數(shù)據(jù)交給視圖去渲染(顯示)
view.showBrand(data);
this.createModel();
this.brandChange();
this.modelChange();
},
//車型函數(shù)
createModel:function(){
var id=$('.make').val();
var data=model.getModel(id);
view.showModel(data);
this.createCar();
},
//車款函數(shù)
createCar:function(){
var id=$('.model').val();
var data=model.getCar(id);
view.showCar(data);
},
//品牌點(diǎn)擊函數(shù)
brandChange:function(){
$('.make').change(function(){
ctrl.createModel();
})
},
//車型點(diǎn)擊函數(shù)
modelChange:function(){
$('.model').change(function(){
ctrl.createCar();
})
}
};
//定義一個(gè)模型對象
var model={
//獲取第一個(gè)數(shù)據(jù)
getBrand:function(){
return car_make;
},
//獲取第二個(gè)數(shù)據(jù)
getModel:function(id){
return car_model[id];
},
//獲取第三個(gè)數(shù)據(jù)
getCar:function(id){
return car_car[id];
}
};
//定義一個(gè)視圖對象
var view={
//下拉列表
createSelect:function(title,data,element){
var html='<option>'+title+'</option>';
$.each(data,function(){
html+='<option value="'+this.id+'">'+this.name+'</option>'
});
element.html(html);
element.children().eq(1).attr('selected',true);
},
//品牌
showBrand:function(data){
this.createSelect('請選擇品牌',data,$('.make'));
},
//車型
showModel:function(data){
this.createSelect('請選擇車型',data,$('.model'));
},
//車款
showCar:function(data){
this.createSelect('請選擇車款',data,$('.car'));
}
};
ctrl.init();
</script>
最終顯示效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序上傳帖子的實(shí)例代碼(含有文字圖片的微信驗(yàn)證)
這篇文章主要介紹了小程序上傳帖子(含有文字圖片的微信驗(yàn)證)的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
js和jquery對dom節(jié)點(diǎn)的操作(創(chuàng)建/追加)
本文詳細(xì)介紹下js和jquery對dom節(jié)點(diǎn)的操作包括創(chuàng)建、追加等等,感興趣的朋友可以參考下哈,希望對你有所幫助2013-04-04
javascript 中關(guān)于array的常用方法詳解
這篇文章主要介紹了javascript 中關(guān)于array的常用方法的相關(guān)資料,需要的朋友可以參考下2017-05-05
JavaScript樹結(jié)構(gòu)深度優(yōu)先算法
這篇文章主要介紹了JavaScript樹結(jié)構(gòu)深度優(yōu)先算法,樹結(jié)構(gòu)可以說是前端中最常見的數(shù)據(jù)結(jié)構(gòu)之一,比如說DOM樹、級聯(lián)選擇、樹形組件,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-07-07
Js利用console計(jì)算代碼運(yùn)行時(shí)間的方法示例
最近看了一本書,發(fā)現(xiàn)了個(gè)計(jì)算代碼執(zhí)行時(shí)間的方法,感覺還挺有用的,所以這篇文章主要給大家介紹了關(guān)于Javascript利用console計(jì)算代碼運(yùn)行時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09

