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广告代码
May 30 Javascript
百度留言本js 大家可以参考下
Oct 13 Javascript
Js 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
Sep 08 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 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中cookie和session的区别实例分析
2014/08/28 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
javascript 精粹笔记
2010/05/09 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
详解Vuex中mapState的具体用法
2017/09/28 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
PHP统计代码行数的小代码
2019/09/19 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
18岁生日感言
2014/01/12 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
写求职信有什么意义
2014/02/17 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
文体活动实施方案
2014/03/27 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
法人身份证明书
2015/06/18 职场文书
python元组打包和解包过程详解
2021/08/02 Python
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫