layui问题之模拟select点击事件的实例讲解

 更新时间:2018年08月15日 17:04:02   作者:柒仔不安  
今天小编就为大家分享一篇layui问题之模拟select点击事件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、问题

不操作页面,实现模拟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点击事件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JScript中的prototype(原型)属性研究

    JScript中的prototype(原型)属性研究

    我们知道JScript中对象的prototype属性,是用来返回对象类型原型的引用的。
    2010-04-04
  • 微信小程序实现发微博功能的示例代码

    微信小程序实现发微博功能的示例代码

    这篇文章主要介绍了微信小程序实现发微博功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 基于js实现微信发送好友如何分享到朋友圈、微博

    基于js实现微信发送好友如何分享到朋友圈、微博

    微信浏览器内置了javascript私有对象WeixinJSBridge,可以实现发送给朋友、分享到朋友圈、分享到微博等功能,本篇文章给大家介绍基于js实现微信发送给朋友如何分享到朋友圈、微博,感兴趣的朋友一起学习吧
    2015-11-11
  • uni-app实现数据下拉刷新功能实例

    uni-app实现数据下拉刷新功能实例

    很多列表页总数量很大,一次性查询加载会导致页面有很长时间的空白期,自然体验感极差,就会使用分页加载数据,这篇文章主要给大家介绍了关于uni-app实现数据下拉刷新功能实例的相关资料,需要的朋友可以参考下
    2022-08-08
  • javascript改变position值实现菜单滚动至顶部后固定

    javascript改变position值实现菜单滚动至顶部后固定

    现在很多网站都有这样的一个效果,当页面滚动到一定高度时,菜单栏会固定在页面顶部;该效果在 ie6 下不支持,因为ie6不支持 position:fixed,效果很不错,感兴趣的朋友可以了解下啊
    2013-01-01
  • js网页中的(运行代码)功能实现思路

    js网页中的(运行代码)功能实现思路

    网页中的"运行代码"是一个很方便的功能,可以直接看到代码的效果,感兴趣的朋友不妨参考下,或许对你学习js有所帮助,好了花不多说切入正题
    2013-02-02
  • JavaScript 高仿真可控弹簧振子实现代码

    JavaScript 高仿真可控弹簧振子实现代码

    我刚学JavaScript ,看见一些牛人写了许多特效,我也花了一天写了一个弹簧振子,完全独创,没有借鉴任何人的代码.
    2009-10-10
  • 关于JS通过google翻译插件实现多语言版本

    关于JS通过google翻译插件实现多语言版本

    这篇文章主要介绍了JS通过google翻译插件实现多语言版本,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • js给onclick赋值传参数的两种方法

    js给onclick赋值传参数的两种方法

    这篇文章主要介绍了js给onclick赋值传参数的两种方法,有需要的朋友可以参考一下
    2013-11-11
  • javascript 通过封装div方式弹出div窗体

    javascript 通过封装div方式弹出div窗体

    废话少说,此js对象是通过封装页面上的div,将其弹出,可以弹出多个,参考了一些高人代码,达到我要的效果。先看看效果图。配合一css就可以很好看了。
    2009-10-10

最新评论