基于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 相关文章推荐
网页里控制图片大小的相关代码
Jun 13 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
Jquery中给animation加更多的运作效果实例
Sep 05 Javascript
jquery解析xml字符串示例分享
Mar 25 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
Javascript执行流程细节原理解析
May 14 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 Javascript
vue实现在data里引入相对路径
Jun 05 Vue.js
利用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
如何在PHP程序中防止盗链
2008/04/09 PHP
php 静态页面中显示动态内容
2009/08/14 PHP
php学习之 数组声明
2011/06/09 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
初识angular框架后的所思所想
2016/02/19 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
Python实现的栈(Stack)
2018/01/26 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Django开发的简易留言板案例详解
2018/12/04 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
一套SQL笔试题
2016/08/14 面试题
2014新年寄语
2014/01/20 职场文书
称象教学反思
2014/02/03 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
2016新年年会主持词
2015/07/06 职场文书