基于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 24 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
采用call方式实现js继承
May 20 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
javascript 作用于作用域链的详解
Sep 27 Javascript
vue组件与复用详解
Apr 08 Javascript
小程序自定义单页面、全局导航栏的实现代码
Mar 15 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
js实现3D旋转相册
Aug 02 Javascript
Javascript webpack动态import
Apr 19 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
第四节--构造函数和析构函数
2006/11/16 PHP
php基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
js获取ip和地区
2017/03/10 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Python按行读取文件的简单实现方法
2016/06/22 Python
Python实现在线音乐播放器
2017/03/03 Python
Python解惑之True和False详解
2017/04/24 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
database面试题
2013/03/28 面试题
网络技术专业求职信
2014/02/18 职场文书
建议书的格式
2014/05/12 职场文书
公司副总经理任命书
2014/06/05 职场文书
幼儿园课题方案
2014/06/09 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
主持人开幕词
2015/01/29 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android