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 相关文章推荐
jquery制作LED 时钟特效
Feb 01 Javascript
详解JavaScript正则表达式中的global属性的使用
Jun 16 Javascript
js html css实现复选框全选与反选
Oct 09 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
详解redux异步操作实践
Aug 15 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
Feb 09 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
深入理解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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
python简单实现获取当前时间
2016/08/27 Python
Python 从相对路径下import的方法
2018/12/04 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
财务经理岗位职责
2013/11/09 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
食品安全主题班会
2015/08/13 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android