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实现图片滑动切换的代码示例分享
Mar 06 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
Apr 19 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
javascript回调函数的概念理解与用法分析
May 27 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 Javascript
Javascript幻灯片播放功能实现过程解析
May 07 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
php 无法载入mysql扩展
2010/03/12 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
python word转pdf代码实例
2019/08/16 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
实习鉴定范文
2013/12/19 职场文书
火锅店的活动方案
2014/08/15 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
通讯稿格式及范文
2015/07/22 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
解析redis hash应用场景和常用命令
2021/08/04 Redis
php去除deprecated的实例方法
2021/11/17 PHP
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python
MySQL 逻辑备份 into outfile
2022/05/15 MySQL