基于MVC方式實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)(JavaScript)
本文實(shí)例為大家分享了基于MVC三級(jí)聯(lián)動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
Html代碼:
<div class="box"> <select class="make"> <option>請(qǐng)選擇品牌</option> </select> <select class="model"> <option>請(qǐng)選擇車型</option> </select> <select class="car"> <option>請(qǐng)選擇車款</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è)控制器對(duì)象 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è)模型對(duì)象 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è)視圖對(duì)象 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('請(qǐng)選擇品牌',data,$('.make')); }, //車型 showModel:function(data){ this.createSelect('請(qǐng)選擇車型',data,$('.model')); }, //車款 showCar:function(data){ this.createSelect('請(qǐng)選擇車款',data,$('.car')); } }; ctrl.init(); </script>
最終顯示效果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS對(duì)外部文件的加載及對(duì)IFRMAME的加載的實(shí)現(xiàn),當(dāng)加載完成后,指定指向方法(方法回調(diào))
callback方法回調(diào)是指當(dāng)某方法執(zhí)行完成后,去自動(dòng)執(zhí)行指定的另一方法的過程.下面舉兩個(gè)代表性的例子,說說JS世界里的方法回調(diào).2011-07-07Eclipse去除js(JavaScript)驗(yàn)證錯(cuò)誤
這篇文章主要是對(duì)Eclipse去除js(JavaScript)驗(yàn)證錯(cuò)誤進(jìn)行了介紹。在Eclipse中,js文件常常會(huì)報(bào)錯(cuò)??梢酝ㄟ^如下幾個(gè)步驟解決2014-02-021秒50萬字!js實(shí)現(xiàn)關(guān)鍵詞匹配
1秒50萬字!js實(shí)現(xiàn)關(guān)鍵詞匹配,快速進(jìn)行關(guān)鍵字匹配,感興趣的小伙伴們可以參考一下2016-08-08IE6與IE7中,innerHTML獲取param的區(qū)別
最近,在用一些web編輯器,發(fā)現(xiàn)插入一段mp3后,查看源代碼,object標(biāo)簽中的param都被刪除。下面我演示給大家看看。2009-03-03echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線)
這篇文章主要介紹了echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07細(xì)數(shù)localStorage的用法及使用注意事項(xiàng)
這篇文章主要介紹了細(xì)數(shù)localStorage的用法及使用注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義分析
這篇文章主要介紹了《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義,結(jié)合實(shí)例形式分析了《javascript設(shè)計(jì)模式》中JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)的原理、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04微信小程序移動(dòng)拖拽視圖-movable-view實(shí)例詳解
這篇文章主要介紹了微信小程序移動(dòng)拖拽視圖-movable-view的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08JavaScript setInterval()與setTimeout()計(jì)時(shí)器
這篇文章主要介紹了JavaScript setInterval()與setTimeout()計(jì)時(shí)器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12JavaScript中的函數(shù)申明、函數(shù)表達(dá)式、箭頭函數(shù)
js中的函數(shù)可以通過幾種方式創(chuàng)建,具體創(chuàng)建方法通過實(shí)例代碼給大家介紹的非常詳細(xì),文中通過例子給大家介紹了函數(shù)聲明和表達(dá)式之間的差別,感興趣的朋友跟隨小編一起看看吧2019-12-12