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 相关文章推荐
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
vue中的模态对话框组件实现过程
May 01 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
JS中类或对象的定义说明
2014/03/10 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
js图片上传的封装代码
2017/08/01 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
使用python制作一个解压缩软件
2019/11/13 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
车间组长岗位职责
2013/12/20 职场文书
企业业务员岗位职责
2014/03/14 职场文书
初中班主任评语大全
2014/04/24 职场文书
代收款委托书范本
2014/10/01 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
英语邀请函范文
2015/02/02 职场文书
高一军训决心书
2015/02/05 职场文书
教师个人发展总结
2015/02/11 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
三八节祝酒词
2015/08/11 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python