layui問(wèn)題之模擬select點(diǎn)擊事件的實(shí)例講解
一、問(wèn)題
不操作頁(yè)面,實(shí)現(xiàn)模擬select的事件,即,自動(dòng)出現(xiàn)下拉框,自動(dòng)點(diǎn)擊下拉框的值,select文本框的值隨之改變
二、經(jīng)過(guò)
剛開(kāi)始查看layui官方文檔,發(fā)現(xiàn)僅僅只是有select監(jiān)聽(tīng)事件,即:
form.on('select(filter)', function(data){ console.log(data.elem); //得到select原始DOM對(duì)象 console.log(data.value); //得到被選中的值 });
但是,這個(gè)事件需要操作頁(yè)面,不可取。
三、結(jié)果
查看layui源碼,關(guān)于select事件的實(shí)現(xiàn),在form.js中,看實(shí)現(xiàn)的原理。自動(dòng)觸發(fā)select點(diǎn)擊原理就是:
1、找到當(dāng)前select的下一個(gè)div.layui-select-title節(jié)點(diǎn)的子元素,即input或者i,實(shí)現(xiàn)點(diǎn)擊事件。
2、上一步驟完了之后,出現(xiàn)下拉框,但是下拉框還沒(méi)有點(diǎn)擊事件;需要再實(shí)現(xiàn)你想讓下拉框里面的哪個(gè)值有點(diǎn)擊事件。此時(shí),需要通過(guò)select找到下拉框dl里面的dd的具體的值,然后實(shí)現(xiàn)點(diǎn)擊事件。
這樣就完整的實(shí)現(xiàn)了模擬select點(diǎn)擊事件。
源碼:
<!-- 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();
雖然實(shí)現(xiàn)了效果,實(shí)際上看不出來(lái)效果,加一個(gè)延遲就可以了:
// 優(yōu)化后的js $('select[name="modules"]').next().find('.layui-select-title input').click(); // 延遲3s再實(shí)現(xiàn)自動(dòng)點(diǎn)擊下拉框事件 setTimeout(function () { $('select[name="modules"]').next().find('.layui-anim').children('dd[lay-value="20"]').click(); },3000);
以上這篇layui問(wèn)題之模擬select點(diǎn)擊事件的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
javascript cookies 設(shè)置、讀取、刪除實(shí)例代碼
javascript cookies 存、取、刪除實(shí)例,也是不錯(cuò)的文章,跟我們整理的有些補(bǔ)充。2010-04-04Echarts實(shí)現(xiàn)暫無(wú)數(shù)據(jù)的三種方法
本文將介紹如何使用Echarts實(shí)現(xiàn)暫無(wú)數(shù)據(jù)的三種方法,詳細(xì)講解這三種方法的實(shí)現(xiàn)步驟和效果展示,幫助讀者更好地理解如何在Echarts中處理暫無(wú)數(shù)據(jù)的情況2023-08-08CSS和JS標(biāo)簽style屬性對(duì)照表(方便js開(kāi)發(fā)的朋友)
CSS和JS標(biāo)簽style屬性對(duì)照表(方便js開(kāi)發(fā)的朋友),需要的朋友可以收藏下。2010-11-11基于Bootstrap里面的Button dropdown打造自定義select
這篇文章主要介紹了基于Bootstrap里面的Button dropdown打造自定義select的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05js split函數(shù)用法總結(jié)(從入門(mén)到精通)
js split就是將一字符串以特定的字符分割成數(shù)組,數(shù)組一般是字符串處理比較常用的處理方法2013-03-03原生JS取代一些JQuery方法的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇原生JS取代一些JQuery方法的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09JavaScript 函數(shù)節(jié)流詳解及方法總結(jié)
這篇文章主要介紹了JavaScript 函數(shù)節(jié)流詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解
這篇文章主要介紹了ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11