layui问题之模拟select点击事件的实例讲解


Posted in Javascript onAugust 15, 2018

一、问题

不操作页面,实现模拟select的事件,即,自动出现下拉框,自动点击下拉框的值,select文本框的值随之改变

二、经过

刚开始查看layui官方文档,发现仅仅只是有select监听事件,即:

form.on('select(filter)', function(data){
 console.log(data.elem); //得到select原始DOM对象
 console.log(data.value); //得到被选中的值
});

但是,这个事件需要操作页面,不可取。

三、结果

查看layui源码,关于select事件的实现,在form.js中,看实现的原理。自动触发select点击原理就是:

1、找到当前select的下一个div.layui-select-title节点的子元素,即input或者i,实现点击事件。

2、上一步骤完了之后,出现下拉框,但是下拉框还没有点击事件;需要再实现你想让下拉框里面的哪个值有点击事件。此时,需要通过select找到下拉框dl里面的dd的具体的值,然后实现点击事件。

这样就完整的实现了模拟select点击事件。

源码:

<!-- HTML -->
<select name="modules" lay-verify="required" lay-search="">
            <option value="">直接选择或搜索选择</option>
            <option value="1">layer</option>
            <option value="2">form</option>
            <option value="3">layim</option>
          </select>
// JS:
$('select[name="modules"]').next().find('.layui-select-title input').click();

$('select[name="modules"]').next().find('.layui-anim').children('dd[lay-value="20"]').click();

虽然实现了效果,实际上看不出来效果,加一个延迟就可以了:

// 优化后的js
$('select[name="modules"]').next().find('.layui-select-title input').click();

// 延迟3s再实现自动点击下拉框事件

setTimeout(function () {
          $('select[name="modules"]').next().find('.layui-anim').children('dd[lay-value="20"]').click();

},3000);

以上这篇layui问题之模拟select点击事件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript动态绑定事件的简单实现代码
Dec 25 Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
JS判断两个时间大小的示例代码
Jan 28 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
Angularjs自定义指令Directive详解
May 27 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 Javascript
8个JS的reduce使用实例和reduce操作方式
Oct 05 Javascript
深入理解Vue router的部分高级用法
Aug 15 #Javascript
JS打印彩色菱形的实例代码
Aug 15 #Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 #Javascript
layui 优化button按钮和弹出框的方法
Aug 15 #Javascript
jQuery实现参数自定义的文字跑马灯效果
Aug 15 #jQuery
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 #Javascript
React+Webpack快速上手指南(小结)
Aug 15 #Javascript
You might like
Apache2 httpd.conf 中文版
2006/12/06 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
python调用fortran模块
2016/04/08 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Pytorch之contiguous的用法
2019/12/31 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
毕业自我评价
2014/02/05 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
鼓舞士气的口号
2014/06/16 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS