基于MVC方式實現(xiàn)三級聯(lián)動(JavaScript)
本文實例為大家分享了基于MVC三級聯(lián)動的具體代碼,供大家參考,具體內(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ù)交給視圖進行顯示 * * * */ //定義一個控制器對象 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); }, //品牌點擊函數(shù) brandChange:function(){ $('.make').change(function(){ ctrl.createModel(); }) }, //車型點擊函數(shù) modelChange:function(){ $('.model').change(function(){ ctrl.createCar(); }) } }; //定義一個模型對象 var model={ //獲取第一個數(shù)據(jù) getBrand:function(){ return car_make; }, //獲取第二個數(shù)據(jù) getModel:function(id){ return car_model[id]; }, //獲取第三個數(shù)據(jù) getCar:function(id){ return car_car[id]; } }; //定義一個視圖對象 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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS對外部文件的加載及對IFRMAME的加載的實現(xiàn),當加載完成后,指定指向方法(方法回調(diào))
callback方法回調(diào)是指當某方法執(zhí)行完成后,去自動執(zhí)行指定的另一方法的過程.下面舉兩個代表性的例子,說說JS世界里的方法回調(diào).2011-07-07IE6與IE7中,innerHTML獲取param的區(qū)別
最近,在用一些web編輯器,發(fā)現(xiàn)插入一段mp3后,查看源代碼,object標簽中的param都被刪除。下面我演示給大家看看。2009-03-03echarts如何實現(xiàn)動態(tài)曲線圖(多條曲線)
這篇文章主要介紹了echarts如何實現(xiàn)動態(tài)曲線圖(多條曲線),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07《javascript設(shè)計模式》學習筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計對象成員的定義分析
這篇文章主要介紹了《javascript設(shè)計模式》學習筆記Javascript面向?qū)ο蟪绦蛟O(shè)計對象成員的定義,結(jié)合實例形式分析了《javascript設(shè)計模式》中JavaScript面向?qū)ο蟪绦蛟O(shè)計的原理、定義、用法及操作注意事項,需要的朋友可以參考下2020-04-04JavaScript setInterval()與setTimeout()計時器
這篇文章主要介紹了JavaScript setInterval()與setTimeout()計時器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12JavaScript中的函數(shù)申明、函數(shù)表達式、箭頭函數(shù)
js中的函數(shù)可以通過幾種方式創(chuàng)建,具體創(chuàng)建方法通過實例代碼給大家介紹的非常詳細,文中通過例子給大家介紹了函數(shù)聲明和表達式之間的差別,感興趣的朋友跟隨小編一起看看吧2019-12-12