基于MVC方式实现三级联动(JavaScript)


Posted in Javascript onJanuary 23, 2017

本文实例为大家分享了基于MVC三级联动的具体代码,供大家参考,具体内容如下

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  模型 (数据)
  * controller  控制器
  * view  视图
  * 下拉事件  由控制器处理
  * 获取数据  由模型处理
  * 数据的显示 由视图处理
  * 控制器  发布指令  调用模型获取数据
  *
  * 控制器拿到数据后发布指令将数据交给视图进行显示
  *
  *
  * */

  //定义一个控制器对象
  var ctrl={
    //初始化函数
    init:function(){
      this.createBrand();
    },
    //品牌函数
    createBrand:function(){

      //调用模型获取数据
      var data=model.getBrand();

      //将数据交给视图去渲染(显示)
      view.showBrand(data);

      this.createModel();
      this.brandChange();
      this.modelChange();
    },
    //车型函数
    createModel:function(){

      var id=$('.make').val();
      var data=model.getModel(id);
      view.showModel(data);
      this.createCar();
    },
    //车款函数
    createCar:function(){

      var id=$('.model').val();
      var data=model.getCar(id);
      view.showCar(data);
    },
    //品牌点击函数
    brandChange:function(){

      $('.make').change(function(){
        ctrl.createModel();
      })
    },
    //车型点击函数
    modelChange:function(){

      $('.model').change(function(){
        ctrl.createCar();
      })
    }
  };

  //定义一个模型对象
  var model={
    //获取第一个数据
    getBrand:function(){

      return car_make;
    },
    //获取第二个数据
    getModel:function(id){

      return car_model[id];
    },
    //获取第三个数据
    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>

最终显示效果:

基于MVC方式实现三级联动(JavaScript)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
javascript中检测变量的类型的代码
Dec 28 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
浅谈JavaScript中数组的增删改查
Jun 20 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
js删除对象中的某一个字段的方法实现
Jan 11 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 24 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 #Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 #Javascript
js选项卡的制作方法
Jan 23 #Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 #Javascript
详解javascript中对数据格式化的思考
Jan 23 #Javascript
JavaScript 栈的详解及实例代码
Jan 22 #Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 #Javascript
You might like
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
再次研究下cache_lite
2007/02/14 PHP
PHP通用检测函数集合
2011/02/08 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
smarty中常用方法实例总结
2015/08/07 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
js断点调试经验分享
2017/12/08 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
vue实现图片上传功能
2020/05/28 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
python中树与树的表示知识点总结
2019/09/14 Python
ipad上运行python的方法步骤
2019/10/12 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
python实现低通滤波器代码
2020/02/26 Python
python自定义函数def的应用详解
2020/06/03 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
JPA的优势都有哪些
2013/07/04 面试题
季度思想汇报
2014/01/01 职场文书
物业保安辞职信
2015/05/12 职场文书
javascript对象3个属性特征
2021/11/17 Javascript