基于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 相关文章推荐
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
JavaScript面向对象编程入门教程
Apr 16 Javascript
JsRender for object语法简介
Oct 31 Javascript
jQuery中position()方法用法实例
Jan 16 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
利用jQuery实现简单的拖曳效果实例代码
Oct 20 jQuery
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
Apr 08 Javascript
Vue父子之间值传递的实例教程
Jul 02 Javascript
React服务端渲染原理解析与实践
Mar 04 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
我用php+mysql写的留言本
2006/10/09 PHP
php HandlerSocket的使用
2011/05/02 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
ASP Json Parser修正版
2009/12/06 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
python xml解析实例详解
2016/11/14 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python实现字典嵌套列表取值
2019/12/16 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Python 字典中的所有方法及用法
2020/06/10 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
成教自我鉴定
2013/10/27 职场文书
知识竞赛主持词
2014/03/26 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
第一军规观后感
2015/06/12 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers