一、問題
成都創(chuàng)新互聯(lián)是專業(yè)的古雷港網(wǎng)站建設(shè)公司,古雷港接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行古雷港網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
不操作頁面,實(shí)現(xiàn)模擬select的事件,即,自動出現(xiàn)下拉框,自動點(diǎn)擊下拉框的值,select文本框的值隨之改變
二、經(jīng)過
剛開始查看layui官方文檔,發(fā)現(xiàn)僅僅只是有select監(jiān)聽事件,即:
form.on('select(filter)', function(data){ console.log(data.elem); //得到select原始DOM對象 console.log(data.value); //得到被選中的值 });
但是,這個事件需要操作頁面,不可取。
三、結(jié)果
查看layui源碼,關(guān)于select事件的實(shí)現(xiàn),在form.js中,看實(shí)現(xiàn)的原理。自動觸發(fā)select點(diǎn)擊原理就是:
1、找到當(dāng)前select的下一個div.layui-select-title節(jié)點(diǎn)的子元素,即input或者i,實(shí)現(xiàn)點(diǎn)擊事件。
2、上一步驟完了之后,出現(xiàn)下拉框,但是下拉框還沒有點(diǎn)擊事件;需要再實(shí)現(xiàn)你想讓下拉框里面的哪個值有點(diǎn)擊事件。此時,需要通過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í)際上看不出來效果,加一個延遲就可以了:
// 優(yōu)化后的js $('select[name="modules"]').next().find('.layui-select-title input').click(); // 延遲3s再實(shí)現(xiàn)自動點(diǎn)擊下拉框事件 setTimeout(function () { $('select[name="modules"]').next().find('.layui-anim').children('dd[lay-value="20"]').click(); },3000);
以上這篇layui問題之模擬select點(diǎn)擊事件的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前題目:layui問題之模擬select點(diǎn)擊事件的實(shí)例講解
文章URL:http://sd-ha.com/article44/ggsdee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、App設(shè)計、虛擬主機(jī)、軟件開發(fā)、電子商務(wù)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)