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 开发中规范性的一点感想
Jun 23 Javascript
JS cookie中文乱码解决方法
Jan 28 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
jquery序列化方法实例分析
Jun 10 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
JavaScript中apply方法的应用技巧小结
Sep 29 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
js+css实现打字效果
Jun 24 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 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
php zend 相对路径问题
2009/01/12 PHP
php UBB 解析实现代码
2011/11/27 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
详细解析Python中的变量的数据类型
2015/05/13 Python
Python实现截屏的函数
2015/07/26 Python
python更新列表的方法
2015/07/28 Python
使用Python绘制图表大全总结
2017/02/11 Python
python中的常量和变量代码详解
2018/07/25 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
Python imread、newaxis用法详解
2019/11/04 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
物流专业求职计划书
2014/01/10 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
2016公司年会主持词
2015/07/01 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
linux下安装redis图文详细步骤
2021/12/04 Redis
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript