天天看点

jQuery cxSelect 联动下拉菜单

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w178191520/article/details/84111643

插件简介

cxSelect 是基于 jQuery 的多级联动菜单插件,适用于省市、商品分类等联动菜单。

列表数据通过 AJAX 获取,也可以自定义,数据内容使用 JSON 格式。

同时兼容 Zepto,方便在移动端使用。

国内省市县数据来源:

basecss/cityData

下载及演示

演示地址:

http://www.jqhtml.com/wp-content/uploads/2017/05/wz/jQuery.cxSelect-1.4.1/

下载地址:

在线下载

使用方法

载入 JavaScript 文件

<script src="jquery.js"></script>
<script src="jquery.cxselect.js"></script>

           

DOM 结构

<!--
select 必须放在元素 id="element_id" 的内部,不限层级
select 的 class 任意取值,也可以附加多个 class,如 class="province otherclass",在调用时只需要输入其中一个即可,但是不能重复
-->
<div id="element_id">
  <select class="province"></select>
  <select class="city"></select>
  <select class="area"></select>
</div>

           

设置默认值

<!-- 方法一:使用 option 的 value 和 selected 属性 -->
<select class="province">
  <option value="浙江省" selected>浙江省</option>
</select>

<!-- 方法二:使用 select 的 data-value 属性 -->
<select class="province" data-value="浙江省"></select>

           

调用 cxSelect

$('#element_id').cxSelect({
  url: 'cityData.min.json',               // 如果服务器不支持 .json 类型文件,请将文件改为 .js 文件
  selects: ['province', 'city', 'area'],  // 数组,请注意顺序
  emptyStyle: 'none'
});

           

设置参数全局默认值

// 需在引入 <script src="jquery.cxselect.js"></script> 之后,调用之前设置
$.cxSelect.defaults.url = 'cityData.min.json';
$.cxSelect.defaults.emptyStyle = 'none';

           

参数说明

名称 默认值 说明
selects [] 下拉选框组。输入 select 的 className
url null

整合列表数据接口地址(URL)

每个选框的内容使用各自的接口地址,详见

[DEMO]
data 自定义数据,类型为数组,数据使用 JSON 格式。
emptyStyle 子集无数据时 select 的状态。可设置为:"none"(display:none), "hidden"(visibility:hidden)
required false 是否为必选。设为 false 时,会在列表头部添加

<option value="firstValue">firstTitle</option>

选项。
firstTitle '请选择' 选框第一个项目的标题(仅在 required 为 false 时有效)
firstValue '' 选框第一个项目的值(仅在 required 为 false 时有效)
jsonSpace 数据命名空间
jsonName 'n' 数据标题字段名称(用于 option 的标题)
jsonValue 数据值字段名称(用于 option 的 value,没有值字段时使用标题作为 value)
jsonSub 's' 子集数据字段名称

data 属性参数

在父元素上的

data-

属性

<div id="element_id" data-url="cityData.min.json" data-selects="province,city,area" data-required="true"></div>

           
data-selects 下拉选框组。输入 select 的 className,使用英文逗号分隔的字符串
data-url 列表数据接口地址(此处只能设置 URL,自定义需要在参数中设置)
data-empty-style 子集无数据时 select 的状态
data-required 是否为必选
data-first-title 选框第一个项目的标题
data-first-value 选框第一个项目的值
data-json-space
data-json-name 数据标题字段名称
data-json-value 数据值字段名称
data-json-sub

select

元素上的

data-

<select class="province" data-value="浙江省" data-required="false" data-first-title="选择省"></select>

           
data-value 默认选中值
列表数据接口地址
data-query-name 传递上一个选框值的参数名称(默认使用上一个选框的 name 属性值)

API 接口

var cxSelectApi;
// 方法一:
cxSelectApi = $.cxSelect($('#element_id'), {
  selects: ['province', 'city', 'area']
});

// 方法二:
$('#element_id').cxSelect({
  selects: ['province', 'city', 'area']
}, function(api) {
  cxSelectApi = api;
});

           
attach()

绑定

调用时会自动进行绑定,用于使用detach解除绑定后,进行重新绑定。

detach()

解除绑定

解除绑定后,不再具有联动效果。

clear(index)

清空选项

清空第 index 个 select 自身及之后的 select 的选项。

index: select 的序号,从 0 开始。

setOptions(settings)

重新设置参数

settings: 与调用时参数一致。

原文地址:

http://code.ciaoca.com/jquery/cxSelect/

继续阅读