亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

selectedIndex屬性深度解析:下拉框選中的正確姿勢

selectedIndex屬性深度解析:下拉框選中的正確姿勢 select下拉選項(xiàng)的selectedIndex屬性你用過嗎前陣子在某前端群里看到一個提問明明給下拉框設(shè)置了value頁面也渲染出了對應(yīng)的option為什么提交表單時卻拿不到預(yù)期選項(xiàng)問題最后定位到一行很老實(shí)的代碼——有人用selectedIndex做了初始定位又在另一個事件里改了value兩套邏輯互相覆蓋。評論區(qū)有人說這個API都快被忘記了。我愣了一下仔細(xì)想想確實(shí)這些年框架用多了原生select上還有多少人在意selectedIndex這個屬性它到底是干什么的和value比優(yōu)勢在哪為什么動態(tài)下拉里最常翻車的也是它這篇文章想把這家伙重新翻出來聊透順便把我在幾個項(xiàng)目里踩過的坑、寫過的輪子一起交個底。1. selectedIndex與value到底差了點(diǎn)啥兩個API的實(shí)質(zhì)分工1.1 從DOM結(jié)構(gòu)理解selectedIndex的底層邏輯很多人第一眼看到selectedIndex覺得它不就是“選中了第幾項(xiàng)”嘛讀一下返回個數(shù)字寫一下選中對應(yīng)項(xiàng)。這么說沒錯但它底層的工作方式比這更有意思。select元素在DOM里不是孤立存在的它下面掛著一個options集合也就是HTMLCollection。selectedIndex本質(zhì)上是“當(dāng)前選中項(xiàng)在這個集合里的整數(shù)下標(biāo)”。選中第一項(xiàng)就是0第二項(xiàng)就是1沒有選中任何一項(xiàng)就是-1。這種設(shè)計是瀏覽器最早實(shí)現(xiàn)下拉框交互時就定下來的一切操作圍繞集合的下標(biāo)展開而不是圍繞選項(xiàng)的value展開。這里有個容易混淆的細(xì)節(jié)value屬性也是select的一部分它返回的是“選中項(xiàng)option的value值”。但select本身沒有直接的value存儲它所有狀態(tài)都是通過“哪一項(xiàng)被選中”反映出來的。你讀select.value瀏覽器底層查的還是selectedIndex你寫select.value瀏覽器做的也是遍歷options找到對應(yīng)value的那個option然后把它選中。所以在寫代碼時value是“語義化”的selectedIndex是“結(jié)構(gòu)性”的。1.2 為什么說selectedIndex在有些場景更可靠既然value這么語義化為什么還要用selectedIndex我的體會是value在兩種情況下容易“失真”。第一種是選項(xiàng)的value有重復(fù)。HTML規(guī)范里其實(shí)沒禁止多個option擁有相同的value值。一旦兩個選項(xiàng)value一樣select.value就分不清你到底選中了哪個。這時候只有selectedIndex能精確表達(dá)位置。第二種是選項(xiàng)根本沒有value。比如你直接寫了option北京/option沒給value屬性。這種情況option.value返回的是文本內(nèi)容即“北京”??粗鴽]問題但如果文本里有特殊字符、空格、或者后續(xù)顯示文案變了value跟著變后端存儲就可能受污染。而selectedIndex是不關(guān)心文本的它只管位置位置穩(wěn)定它就穩(wěn)定。我在做模擬項(xiàng)目X的表單頁時遇到過一個需求用戶在下拉里選學(xué)歷選項(xiàng)有“初中”“高中”“大?!薄氨究啤薄按T士”“博士”。產(chǎn)品要求只允許選“大?!奔耙陨系陀凇按髮!睍r彈提示并回退到默認(rèn)“大?!?。如果我用value判斷還要維護(hù)一個等級對照表用selectedIndex直接比較下標(biāo)就一行if。這種“位置即業(yè)務(wù)等級”的場景selectedIndex反而比value更直接。1.3 讀寫規(guī)則和瀏覽器差異讀selectedIndex很簡單直接拿屬性值。寫的規(guī)則也直接賦值整數(shù)即可。這里要注意幾點(diǎn)賦一個超過options長度的值瀏覽器靜默忽略不會報錯選中態(tài)保持原樣。賦負(fù)數(shù)在絕大多數(shù)瀏覽器里會被當(dāng)成取消選擇selectedIndex變成-1。但舊版本瀏覽器表現(xiàn)不一有的會把-1當(dāng)成不合法值直接忽略。若select有multiple屬性selectedIndex只返回第一個被選中的索引不能列舉全部。多選場景要用selectedOptions或遍歷options逐個看selected。這些邊界問題平時不碰沒啥一旦碰上就會感受到“結(jié)構(gòu)API”的擰巴。我自己的習(xí)慣是單選下拉優(yōu)先用selectedIndex處理邏輯需要拿給后端的數(shù)據(jù)時再從選中項(xiàng)身上取value。分開用反而兩邊都清爽。2. 讀selectedIndex的高頻業(yè)務(wù)場景聯(lián)動、向?qū)?、列表選中態(tài)2.1 聯(lián)動下拉為什么用索引比value省心聯(lián)動下拉是selectedIndex出現(xiàn)最多的場景。比如選省份聯(lián)動城市選一級分類聯(lián)動二級分類。傳統(tǒng)寫法是監(jiān)聽change事件拿到當(dāng)前選中的省份再去請求或從本地數(shù)據(jù)里篩城市。用value寫的話代碼長這樣const provinceSelect document.querySelector(#province); const citySelect document.querySelector(#city); provinceSelect.addEventListener(change, () { const provinceValue provinceSelect.value; citySelect.innerHTML ; const cities cityMap[provinceValue] || []; cities.forEach(city { const opt document.createElement(option); opt.value city.code; opt.textContent city.name; citySelect.appendChild(opt); }); });用selectedIndex寫則可以完全不依賴value里的業(yè)務(wù)編碼provinceSelect.addEventListener(change, () { const idx provinceSelect.selectedIndex; citySelect.innerHTML ; const cities cityList[idx] || []; // 后續(xù)渲染邏輯一致 });兩種方式都能跑。差別在哪在數(shù)據(jù)結(jié)構(gòu)的穩(wěn)定性上。如果后端接口給的城市數(shù)據(jù)是按省份數(shù)組的索引對齊的用value反而要做一次indexOf查找。更關(guān)鍵的是當(dāng)value的編碼規(guī)則調(diào)整比如從數(shù)字編碼改成省份拼音如果你只在展示層用value去當(dāng)下標(biāo)后續(xù)維護(hù)成本一下就上來了。直接用selectedIndex對應(yīng)數(shù)組下標(biāo)結(jié)構(gòu)和數(shù)據(jù)源對齊改數(shù)據(jù)時幾乎不用動邏輯。2.2 步驟向?qū)Ш捅韱畏植狡饔涀∮脩糇叩侥囊徊阶鲞^多步表單的人應(yīng)該都碰過“當(dāng)前步驟指示器”。有些產(chǎn)品用下拉框來切換步驟尤其是批量配置場景選第幾步就展示對應(yīng)步驟的區(qū)塊。這種地方用selectedIndex記錄步驟位置再合適不過。我做過一個某跨平臺系統(tǒng)的配置向?qū)ё髠?cè)是一個select右側(cè)是步驟面板。用戶切到第3步右側(cè)顯示第3步內(nèi)容還要記住他是否訪問過第4步。這時候我用selectedIndex作為“步驟指針”配合一個數(shù)組去記錄每個步驟的完成狀態(tài)const stepSelect document.querySelector(#stepSelector); const stepStatus [false, false, false, false, false]; stepSelect.addEventListener(change, () { const current stepSelect.selectedIndex; stepStatus[current] true; renderStepPanel(current); updateVisitedFlag(stepStatus); });如果用value來記錄就得定義step-1、step-2這類約定還得解析字符串。selectedIndex天然就是數(shù)字跟數(shù)組下標(biāo)、步驟編號天然同構(gòu)少掉了整個parse環(huán)節(jié)。這個場景里它就是最順手的那把刀。2.3 表格行選中與下拉選項(xiàng)的同步還有一個我近期才摸索出來的妙用下拉列表和表格行選中做雙向同步。比如頁面上有一個表格每行數(shù)據(jù)對應(yīng)下拉里的一個選項(xiàng)用戶既可以直接在下拉里選也可以點(diǎn)擊表格行切狀態(tài)。下拉被程序化切換到某行時我需要高亮對應(yīng)表格行。這時selectedIndex的價值在于它本身就是“行號”。我只需要tableRowClickHandler(rowIndex) { mySelect.selectedIndex rowIndex; highlightTableRow(rowIndex); } mySelect.addEventListener(change, () { const row mySelect.selectedIndex; highlightTableRow(row); });不需要維護(hù)“選中的業(yè)務(wù)主鍵 - 行號”的映射關(guān)系。第一版我用的是valueid映射后來發(fā)覺純屬多余因?yàn)橄吕樞蚝捅砀耥樞蚴峭粋€數(shù)據(jù)源渲染出來的索引天然一一對應(yīng)。這個場景讓我對selectedIndex徹底改觀它不是老掉牙的舊API而是恰到好處的輕量工具。3. 動態(tài)增刪option后selectedIndex為什么最容易翻車3.1 一次實(shí)打?qū)嵉牟瓤酉雀膐ptions再賦值下標(biāo)對不上了有一回做一個多級篩選器邏輯是第一個下拉選分類第二個下拉的選項(xiàng)根據(jù)分類動態(tài)生成。為了用戶體驗(yàn)我保留了用戶之前選中過的二級選項(xiàng)切換一級分類時先備份當(dāng)前二級索引重新生成選項(xiàng)后嘗試恢復(fù)。代碼如下const backupIndex secondSelect.selectedIndex; buildOptions(secondSelect, newList); secondSelect.selectedIndex backupIndex;看上去沒問題但實(shí)測中發(fā)現(xiàn)一個詭異現(xiàn)象有時候恢復(fù)的選項(xiàng)和用戶之前看到的不是同一個。排查半天發(fā)現(xiàn)問題不在恢復(fù)那一步而在備份那一步——我在重新生成選項(xiàng)之前備份的是舊列表的索引可舊列表和新列表的內(nèi)容排序完全不一樣。比如舊列表第3項(xiàng)是“廣東”新列表按拼音重排后第3項(xiàng)變成了“北京”。索引位置一樣但含義完全不同。這就是典型的下標(biāo)體系被打破的案例。selectedIndex是位置敏感的一旦options數(shù)組結(jié)構(gòu)變化舊索引就失效了。解決方案不是硬恢復(fù)索引而是備份業(yè)務(wù)主鍵重建后先按主鍵找新位置再賦值const backupValue secondSelect.value; buildOptions(secondSelect, newList); restoreSelectByValue(secondSelect, backupValue);專門寫了一個restore函數(shù)里面遍歷options找匹配value。這函數(shù)前面說過value失效場景很少所以在動態(tài)列表里value更可靠。這件事之后我的紅線是靜態(tài)列表用selectedIndex順手動態(tài)列表優(yōu)先用value。3.2 HTMLCollection實(shí)時刷新帶來的“隱式位移”另一個更隱蔽的坑options是個實(shí)時集合你對它做增刪操作索引會立刻重新編號。比如當(dāng)前選中第5項(xiàng)下標(biāo)4此時刪掉第1項(xiàng)你選中的項(xiàng)自動變成第4項(xiàng)下標(biāo)3selectedIndex跟著變。這個行為本身符合直覺但如果你沒有意識到“索引是實(shí)時變化的”就容易寫錯邏輯。比如const delIndex select.selectedIndex; select.remove(delIndex); // 此時如果刪的是前面項(xiàng)原選中項(xiàng)下標(biāo)已經(jīng)變了如果在刪除后立刻用舊的delIndex去處理原選中項(xiàng)拿到的一定是另一項(xiàng)或undefined。我的做法是凡是涉及刪除后要拿到原選中項(xiàng)先保存元素引用const selectedOption select.options[select.selectedIndex]; select.remove(select.selectedIndex); // 后續(xù)處理用selectedOption而不是索引類似的問題也會出現(xiàn)在appendChild插入選項(xiàng)時。插入位置靠前后面所有選項(xiàng)索引都往后挪此時selectedIndex如果沒重設(shè)雖然指向的option沒變因?yàn)镈OM引用沒變但與用戶視覺上的“當(dāng)前選中順序”就出現(xiàn)了不一致。交互層觸發(fā)的事件和選中態(tài)的對齊需要手動處理。3.3 空列表和重置時機(jī)的配合問題動態(tài)下拉還有個常見要求當(dāng)上級選項(xiàng)切換后下級列表清空并處于“請選擇”狀態(tài)。清空操作一般是innerHTML此時selectedIndex自動變成-1。這操作沒問題問題在某些人喜歡在后面手動補(bǔ)一個“請選擇”選項(xiàng)然后選中它select.innerHTML option value請選擇/option; select.selectedIndex 0;這么寫沒問題。但如果是先appendChild加了一個“請選擇”再立刻調(diào)用select.value嘗試選中它在某些瀏覽器里會因?yàn)関alue是空字符串且option的value屬性也是空字符串而命中但在另一些瀏覽器里select.value賦值空字符串可能不觸發(fā)選中邏輯。我后來統(tǒng)一用selectedIndex0來完成這個“重置到占位項(xiàng)”的動作完全不依賴value跨瀏覽器穩(wěn)定得多。這類問題不細(xì)測很難發(fā)現(xiàn)尤其當(dāng)你在一個復(fù)雜的表單里同時用了多種重置方式出bug時根本不知道該懷疑誰。建議團(tuán)隊(duì)里約定一種固定的重置寫法少讓成員自由發(fā)揮。4. selectedIndex的邊界情況和多選陷阱4.1 selectedIndex -1是真空態(tài)還是假空態(tài)selectedIndex為-1表示沒有任何選項(xiàng)被選中。這個值在業(yè)務(wù)里常用于表達(dá)“未選擇”狀態(tài)比如沒填完的表單項(xiàng)校驗(yàn)時判斷selectedIndex是否等于-1就知道用戶有沒有選過。但這里有一個讓人迷惑的點(diǎn)明明我設(shè)置了selectedIndex-1頁面上卻還能看到第一項(xiàng)是“選中”的高亮樣式。原因在于大部分瀏覽器的默認(rèn)行為如果select沒有選項(xiàng)或沒有選中項(xiàng)且沒有寫required瀏覽器在用戶不操作時會把第一個可選項(xiàng)當(dāng)成默認(rèn)顯示項(xiàng)。這是瀏覽器“視覺回退”不是DOM狀態(tài)真的改了。我在某表單驗(yàn)證邏輯里就踩過下拉框是允許不選的我設(shè)置了selectedIndex-1然后校驗(yàn)通過結(jié)果用戶沒做任何操作提交時select.value取出來的卻是第一項(xiàng)的value后端也收到了導(dǎo)致一條不完整的記錄入庫。當(dāng)時的修復(fù)很簡單校驗(yàn)時不只看selectedIndex還要看用戶有沒有真實(shí)交互過let userInteracted false; select.addEventListener(change, () { userInteracted true; }); // 提交時 if (!userInteracted || select.selectedIndex -1) { // 當(dāng)作未選擇 }很多同學(xué)喜歡用“視覺上是否默認(rèn)選中第一項(xiàng)”來判斷有沒有選這個思路在原生select里是危險的。視覺高亮不代表selectedIndex有值。如果必須讓用戶強(qiáng)制選擇建議options里顯式加一個disabled的“請選擇”占位項(xiàng)并且不要給它value。這樣能規(guī)避很多莫名其妙的默認(rèn)選中問題。4.2 disabled選項(xiàng)會讓索引讀起來疑似“跳位”下拉里經(jīng)常有不可選項(xiàng)比如“該地區(qū)已停運(yùn)”。disabled的option依然占據(jù)一個索引位置但用戶永遠(yuǎn)無法選中它。selectedIndex讀出來的位置是“當(dāng)前選中的那個合法項(xiàng)的索引”。如果你以為“第一項(xiàng)就是下標(biāo)0”但第一項(xiàng)其實(shí)是disabled的占位項(xiàng)讀出來還會是0嗎實(shí)測如果第一項(xiàng)disabled且沒選中任何項(xiàng)selectedIndex在大部分瀏覽器里是-1但在用戶已經(jīng)選中第二項(xiàng)之后再通過程序把第一項(xiàng)改為disabledselectedIndex依然是第二項(xiàng)的索引比如1頁面視覺也保持第二項(xiàng)選中。這里不會出現(xiàn)位移只是你要注意渲染綁定索引時不要假設(shè)“options[i]一定可選”做高亮等邏輯前要主動檢查option.disabled。另外有一種業(yè)務(wù)偽需求“用戶選中了A項(xiàng)后B項(xiàng)自動不可選”。很多人會去改option的disabled屬性。這沒問題但是disabled改動不會觸發(fā)change事件用戶已經(jīng)選中的C項(xiàng)也不受影響。如果你希望通過狀態(tài)聯(lián)動自動切換選中項(xiàng)還是得手動改selectedIndex。我在一個聯(lián)動配置里就是先改disabled再判斷當(dāng)前選中項(xiàng)是否變成disabled如果是再selectedIndex往下一個可選項(xiàng)目移動邏輯寫起來比預(yù)想的多幾行但這些細(xì)節(jié)躲不過。4.3 多選select里讀selectedIndex的“誤導(dǎo)性”多選模式下selectedIndex返回的是第一個被選中項(xiàng)的下標(biāo)。聽起來像是個便利功能實(shí)際上最容易被誤用。比如你寫了const first mySelect.selectedIndex;下意識以為拿到了第一個選中項(xiàng)。其實(shí)如果用戶選的順序是第3項(xiàng)、第1項(xiàng)selectedIndex返回的是1因?yàn)橄聵?biāo)小的先被選中而不是3。你要是按“第一個被點(diǎn)選”的語義去理解就錯了。多選場景我建議直接繞開selectedIndex用Array.from(select.selectedOptions)拿所有選中項(xiàng)或者遍歷options過濾selected。這兩個API在多選里語義明確不會產(chǎn)生歧義。selectedIndex這個屬性天生是單選模型的產(chǎn)物放到多選里就只是個兼容性殘留別拿它當(dāng)業(yè)務(wù)邏輯的主干。5. 框架時代selectedIndex還剩下哪些用武之地5.1 React受控組件里為什么基本不用它React的受控select用的是value配合onChange事件。你寫select value{city} onChange{...}React內(nèi)部會遍歷options去匹配value對應(yīng)的項(xiàng)并設(shè)置selected。這時候你如果自己再去動selectedIndex麻煩就來了。受控組件要求“狀態(tài)唯一來源”。value存的是業(yè)務(wù)值selectedIndex只是渲染結(jié)果。如果你在事件里寫了類似selectEl.selectedIndex 1React下次渲染時發(fā)現(xiàn)value還是原來的值會再用value重新設(shè)置選中態(tài)你手動指定的索引就被覆蓋了。這就是標(biāo)題開頭那個群里提問的人遇到的問題——他的value邏輯和selectedIndex邏輯互相打架因?yàn)镽eact的渲染循環(huán)會不斷用value“糾正”DOM。在React里如果需要用索引邏輯正確姿勢是把索引存進(jìn)state再通過value{options[idx]?.value}映射到受控屬性上。這樣索引只是業(yè)務(wù)計算的臨時量最終落到的還是value這個唯一狀態(tài)。硬要在React里用selectedIndex等于和框架的渲染模型對著干。5.2 Vue的v-model和原生selectedIndex的兼容經(jīng)驗(yàn)Vue這邊情況類似v-model對select的處理方式與React大同小異也是基于value做匹配。但在Vue的非受控組件或需要直接操作DOM的指令場景里selectedIndex還有空間。比如我寫過一個自定義指令作用是“讓下拉支持通過程序按索引快速切換”指令內(nèi)部就直接操作selectedIndex不依賴框架狀態(tài)const directive { mounted(el, binding) { el.selectedIndex binding.value; }, updated(el, binding) { if (el.selectedIndex ! binding.value) { el.selectedIndex binding.value; } } };這種指令適用于“下拉項(xiàng)完全由靜態(tài)模板決定、value不承擔(dān)業(yè)務(wù)含義”的場合。比如一個純展示用的序號選擇器選項(xiàng)是“第1頁”“第2頁”這種用value反而要跟著頁面文案變。此時selectedIndex當(dāng)“頁碼指針”用非常順手。但要注意Vue更新DOM是異步的updated鉤子里拿到的el可能還在舊狀態(tài)。實(shí)測經(jīng)驗(yàn)多數(shù)情況下updated鉤子里直接賦值selectedIndex不會出錯但如果選項(xiàng)數(shù)量在數(shù)據(jù)變化時同步增減了索引位置可能和應(yīng)用層期望不一致。穩(wěn)妥做法是在nextTick之后再做索引修正。這個坑不大但碰到一次就夠你記一輩子。5.3 無框架環(huán)境里selectedIndex還是最優(yōu)解之一如果項(xiàng)目還在用原生JS或者你只是在一個獨(dú)立的小組件里實(shí)現(xiàn)一個簡單交互selectedIndex依然是最輕量的API。沒有框架的對比沒有響應(yīng)式的狀態(tài)流轉(zhuǎn)你要做的不過就是“選中第幾個”這件事一行代碼解決。比如我寫過一個批量導(dǎo)入的預(yù)覽組件文件解析后得到的字段順序映射到下拉選項(xiàng)用戶調(diào)換字段時選中某個字段就對應(yīng)數(shù)據(jù)源列號。這個場景value完全無意義selectedIndex直接就是列號fieldSelect.addEventListener(change, () { const colIndex fieldSelect.selectedIndex; previewTable.dataset.columnMap colIndex; });代碼量少得不像話。你非要用value也不是不行但你得維護(hù)columnMap映射表純純給自己加戲。5.4 封裝一個安全的索引操作小工具為了兼顧各種場景我后來把自己常用的一套邏輯封裝成了一個極簡函數(shù)專門處理“按索引選中”的安全操作function safeSetSelectedIndex(selectEl, index, fallbackIndex 0) { if (!selectEl) return -1; if (index 0 index selectEl.options.length) { selectEl.selectedIndex index; return index; } if (fallbackIndex 0 fallbackIndex selectEl.options.length) { selectEl.selectedIndex fallbackIndex; return fallbackIndex; } selectEl.selectedIndex -1; return -1; }它只做一件事檢查范圍賦索引失敗回退。進(jìn)入這個工具函數(shù)前業(yè)務(wù)邏輯先想清楚是備份索引還是備份value。如果是動態(tài)列表我建議先備份value重建后再用value匹配索引最后調(diào)用safeSetSelectedIndex完成定位。這套組合拳寫下來基本覆蓋了我遇到過的全部場景靜態(tài)索引、動態(tài)變化、越界保護(hù)、回退兜底。自己團(tuán)隊(duì)里用它替換了大量繁瑣的if判斷出錯率比之前手動寫低了不少。6. 幾個實(shí)戰(zhàn)命令和代碼片段可以直接抄6.1 輪播式切換下一項(xiàng)有一種需求是點(diǎn)擊按鈕切換到下拉的下一項(xiàng)循環(huán)滾動。用selectedIndex寫起來很順手document.querySelector(#nextBtn).addEventListener(click, () { const select document.querySelector(#demoSelect); const next (select.selectedIndex 1) % select.options.length; select.selectedIndex next; select.dispatchEvent(new Event(change)); });注意最后dispatchEvent那行程序化修改selectedIndex本身不觸發(fā)change事件。如果你后續(xù)邏輯依賴change記得手動派發(fā)。這個細(xì)節(jié)我第一次也漏了導(dǎo)致點(diǎn)擊按鈕后UI變了但聯(lián)動沒反應(yīng)。6.2 根據(jù)選中索引設(shè)置占位提示做表單時經(jīng)常遇到下拉為空需要顯示灰色提示選中后提示消失。selectedIndexCSS類可以這樣配合const select document.querySelector(#reqSelect); function updatePlaceholder() { select.classList.toggle(is-empty, select.selectedIndex -1); } select.addEventListener(change, updatePlaceholder); updatePlaceholder();CSS類單獨(dú)控制顏色和邊框不需要在每次渲染時寫innerHTML。干凈利落。6.3 selectedIndex與鍵盤上移下移的配合原生select在聚焦?fàn)顟B(tài)下按上/下方向鍵就會自動切換選中項(xiàng)而且會觸發(fā)change事件。在某些不支持原生樣式的自定義下拉組件里我們常常要模擬這個行為。簡化版可以這樣寫customSelect.addEventListener(keydown, (e) { if (e.key ! ArrowDown e.key ! ArrowUp) return; e.preventDefault(); const dir e.key ArrowDown ? 1 : -1; const nextIndex Math.min( Math.max(realSelect.selectedIndex dir, 0), realSelect.options.length - 1 ); realSelect.selectedIndex nextIndex; syncCustomUI(); });把真實(shí)但隱藏的select當(dāng)作狀態(tài)容器selectedIndex負(fù)責(zé)“當(dāng)前在哪一項(xiàng)”UI層負(fù)責(zé)畫出來數(shù)據(jù)層從options里取value。這個架構(gòu)在無框架環(huán)境下特別穩(wěn)我做了好幾個自定義下拉都沿用這個思路。7. 我用了這么多年最后留下三條經(jīng)驗(yàn)第一靜態(tài)結(jié)構(gòu)里大膽用selectedIndex動態(tài)結(jié)構(gòu)里三思而后行。選項(xiàng)一旦可能增刪改排序索引就失去了穩(wěn)定性轉(zhuǎn)而以value備份為佳。第二程序改selectedIndex不會觸發(fā)change事件需要手動派發(fā)或顯式調(diào)用業(yè)務(wù)函數(shù)。這個坑在原生環(huán)境極其高頻每次寫完索引賦值先問自己一句后續(xù)邏輯依靠事件嗎依靠就補(bǔ)上dispatch不依靠就確認(rèn)調(diào)用鏈。第三別在受控組件里跟框架搶方向盤。React或Vue都已經(jīng)把value作為狀態(tài)的唯一來源你在外面手動動selectedIndex大概率會被下一次渲染覆蓋。要玩索引就在state層玩映射成value再進(jìn)組件。如果你之前從沒認(rèn)真用過selectedIndex翻翻手頭的舊代碼把它從“曾經(jīng)用過但忘了”的收藏夾里撈出來弄懂它和value的邊界。這種老API不是沒用了它們只是被框架遮住了太久。真正需要的人會在某個深夜的聯(lián)動下拉bug現(xiàn)場跟它重逢然后感嘆一句原來你一直在等我。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本在线不卡v二区| 天天综合91| 免费毛片在线播放| 国产拍偷精品网站| 春色综合免费| 久久25| aaaa少妇高潮大片| 玖玖爱在线视频免费观看| 日韩精品影视| 亚洲城人男人的天堂| 黄色区免费观看中文字幕| 久久久啊啊啊| 人妻丝袜肏逼| 欧美精品人妻视频| 色五月婷婷色| 国产网红精品| 亚洲无码国产探花在线观看| 色五月av| 超碰九区| 97国产精品一区二区传媒公司| 欧美无圣光在线| 岛国精品视频在线观看| 日韩精品 视频一区二区| 国产久久久| 日本熟妇色熟妇在线视频播放| 一本一道人妻久久一区二区三区 | 国产精品无码av嫩草| 精品人妻一区二区三区不卡断| 爽爽爽免费视频| 大香蕉520| 欧美日韩国产黄色片| 欧美性色网| 91视频综合在线| 久草婷婷| 久久久18禁| 日韩偷拍色图| 97超碰jingpin| 久操精品网| 在线观看日韩av不卡| 黄色大片免费在线| 激情五月综合开心五月| 日本丝袜人妻内射| 丰满人妻一区二区三区| 天综合网| 亚洲天堂东京热| 亚洲欧洲网站免费观看| 日本一级一级一级一级| 东京热男人的天堂精品| 黄片直播三级黄片两女一男| 1769精品一区二区三区| 久久久久9999| 免费家庭乱伦视频| 91精品久久久久五月天精品| 91精品女厕偷拍视频| 亚洲中字幕日本一区二区三区| 色九久| 丰满人妻一区二区三区免费 | av无码av无码专区| 狠狠狠一区二区三区| 丁香六月激情综合| 口爆欧美91| 日韩钢筋无码高清啾啾啾| 鸥美精品一区二区久久婷婷| 啊啊啊啊啊啊啊网址在线观看| 日本中文字幕一区| 午夜噜噜噜| 69精品| 日本高清视频在线观看黄已三辽| 密臀成人视频久久久| 欧美一级专区免费大片| 国产精品在线一区二区| 亚洲性少妇| 天美av在线| 三久久久四久久久久| 国产精品福利资源在线尤物| www超碰| 日韩丝袜人妻AV| 好看的91视频| 亚州性色| 国产精品无码av嫩草| 激情色播| 夜夜 中文视频rt| 四季AV一区二区凹凸精品小说| 试看60秒| 久久精品色欧美aⅴ一区二区| 亚洲国产精品久久久久久久久久| 成人熟女区| 国产日韩中文字幕欧美| 国产肏逼网站| 91九色精品熟女内射| 麻豆AV一区二区| 国产精品午夜福利视频| 97超碰欧美| 人人潮人人摸| 人妻啊啊人妻啊| 极品久久久久久久久久久久久久| 日日夜夜骑| 伊人操你| 1区2区3区中文字幕日韩| 五月天AV资源| 国产欧美精选激情视频| AV天天在线观看| 日本最新1区2区3区| 17c嫩草51久久91嫩草| 亚洲国产一级精品毛一级精品看免费视频 | 老熟女阿 国产91| 韩国黄片aaaa| 九九九精品一区二区无码| 99久草| 免费人成?大片在线播放| 在线 亚洲 网爆 自拍| 欧美96交| 亚州操操穴网| 国产精品片| 黄片www.| 黑人性欧美| 两女互慰AV高潮喷水在线观看| 激情婷婷| 亚洲91射| 国产免费永久精品无码| 欧美综合自拍| 男人天堂久久日韩| 精品偷拍13p欧美dodk视频| 欧美亚洲丝袜美女电影| 亚洲国产av中文字幕久久| 久久亚洲天天做| 以及麻豆国产入口在线观看免费| 看黑丝美女操逼青青网站| 在线亚洲 欧美 日本专区 | 好爽视频在线观看视频| 国产久久久9999| 国产一国产一级毛片古装| 少妇免费视频| 操操操日本的逼| 麻豆天美在线喷水AV| 国产精品久久久久亚洲av| 国产和美国毛片| 精品一区二区综合熟妇| 中文久久久| 亚洲熟妇乱女区二区三区| 欧美91精品国产自产| 青青草视频爽一爽| 国产精品免费日韩| 欧美亚洲手机在线| xxx亚洲午夜天堂| 人人贴人人摸| 国产日本一区二区三区蜜臀在线观看| 2019AV天堂| 欧美日韩激情无码专区| 97超碰精品图片| 丝袜美腿诱惑亚洲欧美视频在线观看| 蜜臀一区二区三区在线| 天天操天天日天天干| 日韩av影片在线观看| 亚洲高清综合网| 精品久久99| 中文字幕在线观看永久| 免费在线视频97| 欧美极品女人的天堂| 伊人热综合| 亚洲熟妇综合久久久久久| AV电影在线播放| 欧美激情久操网| 天天插夜夜爽| 美女让帅哥通她小鸡鸡| 极品丝袜无码| 成人免费不卡在线视频| 日韩日本欧美在线观看| 日本影视久久免费| 欧美日韩小说| 精品视频久久区| 天天淫人人妻日日色| 中文字幕乱在线伦视频中文字幕乱码在线 | 亚洲情色在线| 欧美18禁91| 91人人臊| 99热最新网址| 久久久久国产精品喷潮免费观看臀| 91精品人妻一区二区三区蜜桃| 欧美韩国你懂得在线| 91在线|亚| 美女国产一区二区久久| 无码操逼视频一下| 国产精品久久久久久亚洲色欲| 日产精品久久久一区二区| 无码视频一区二区| 欧美天堂日韩三级国产传媒| 亚洲色吧网| 久热大香蕉| 一区操逼日比视频| 日韩啪啪视频| 日韩不卡a级视频专区| av在线播放国产一区| 搡老女人老91二区| 78超碰| 99999国产| 亚洲脚交| 天天操熟妇| 熟妇激情| 人妻蜜桃臀| 学生妹天天看| 97ai亚洲| 嗯嗯啊啊操我| 亚洲人成网站7777| 亚洲精品久久久久毛片A片拉屎| 校园春色AV天堂| 97亚洲色图| 蜜臀99久| 黄色大片视频在线免费看| 91丝袜| 99999精品| 亚洲欧美黄| 91网站18禁| 97色香蕉| 色婷婷国产精品一区在线观看| 日本不卡在线二区三区| 亚洲色图 欧美| 91情色| 超碰免费在线| 少妇蜜汁| 最新av在线| 操少妞在线视频| 天天影视网色欲色香| 毛片99-全集电影手机免费观看完整-B029AV | 亚洲综合射| 日本天天干天天日一区| 亚洲色图 91| 97精品在线视频| 91精品人妻偷情| 伊人丁香五月婷婷| 久久xxxx| 日韩欧美资源| 好爽视频在线观看| 黄色视频60分钟| 一区三区啪啪| 欧美亚洲日韩人妻在线观看| 亚洲影院小综合| 蜜屁Av| 2017,超碰| 人人干人人操人人爱| 色欲无码人妻日韩欧美精品| 真实高潮91| 男人精品天堂一区| 国产乱子伦久久精品综合一区二区三| 色在线综合| 高清在线偷拍自拍视频| 国产乱婷婷精品二区三区| 91伊人大香蕉| 精品少妇99| 伊人丁香五月婷婷| 久久麻豆一区二区| 青青草无码视频| 久草免费在线视频| 俺去也婷婷| 91爱看| 我想要 啊 啊 啊| 日韩精品中文字幕一| 大香蕉男女超碰精品在线| 日韩 欧美 校园一区| 亚洲天天自拍| 五月婷婷激情综合| AV天黑人| 久久精品毛片免费不卡| 97人亚洲综合字幕| 中文字幕三四区| 人人妻人人狠人人| 国产熟妇一区二区| 久久久久亚洲熟妇熟女| 又大又白奶子| 97爱爱官网| 18禁美女裸体无遮挡啪啪| 综合久草| 高清有码一区二区| 97超碰国产精品| 色屁屁影院www国产| 亚洲色图亚洲无码强奸乱伦| 青青草字幕AV| 国产精品亚洲无码| 日韩啪啪啪视频| 97在线免费| 国产一级片| 91白虎| 精品成人av一区二区三区在线| 亚洲淫乱骚妇AV| 69一区二区| 欧美不卡在线美女| 日本一区二区三区午夜观看| 成人A片男人的天堂| 一起草三级AV电影在线观看 | 内射白嫩美女| 国产综合色精品在线观看| 超碰在线人妻| 怡红院久久老司机| 午夜丁香| 日本欧美不卡| 精品九九九九九九九| 天天舔九色婷婷| 九九九九日本 | 99re公开精品免费视频| 国产精品96久久久久久| 欧美激情一| 97超碰人操| 97色欧州| 欧洲亚洲人妻无码中字久久三区四区| 久久综合婷婷| 91操碰| 欧美视频在线视频免费va| 成人八戒网站| 国产av又色又爽又黄| 中国农村熟妇毛片视频| 久久久久亚洲熟妇熟女| 被操高清无码视频| 国产91会所女技师在线观看| 久96热在线观看视频| 少妇综合网| 大学生美女口爆| 色婷婷一区二区三区久久| 96精品久久久久久久久久| 2017天天插| 色综合国产在线观看| 精品久久无码午夜福利| 少妇高潮流水av免费| 3d成人精品一区二区| 日韩人妻播放| 亚洲黄色影视| 日本免费不卡二区| 91女人的网站| 搡老女人911熟妇老熟女| 91精品少妇搡搡搡| 天天看高清麻豆| 久久精品亚洲婷婷| 嗯嗯啊操我| 欧差乱伦二三| 蜜桃久久久久久久久久久久| av无码av无码专区| 粉嫩小泬久久久一区二区| av网站免费看| 成人av在线播放| 亚洲天堂人妻熟妇视频| 91暧暧| 国产精品一区二区麻豆| 欧美精品三区| 久久久96精品| 屌逼麻豆| 成人av在线播放| 青青操轻轻| 亚洲伊人a线观看视频| 国产精品熟女九色九色蜜臀| 欧美男人一区| 91精品导航| 2019天天干天天操| 色婷婷综合久久中文字幕雪峰| 欧美亚洲| 久久日韩肥臀| 青草地一本线一区二区三区| 日韩干B| 久久av成人无码免费| 唯美清纯 妖精视频| 人妻中文字幕日韩电影| 另类av天堂| 亚欧免费观看视频| 久无码| 欧美精品宗合| 亚洲熟妇乱女区二区三区| 欧美色图综合网| 丁香五月天啪啪| 日韩人妻丝袜中文字幕| 99热这里是精品| 中文字幕在线免费观看 | 好看的91视频| 韩国手机不卡无码三级视频| 久久人爽| 亚欧国产无码精品在线| 高颜值美女口爆高潮浪叫| 91操碰| 97色亚洲| 成人一区二区三区四区| 亚洲精品一区二区三区在线播放| 欧美激情一| 久久婷婷一区二| 国产亚洲性生活视频播放| 少妇丝袜在线观看AV| 女人爽到高潮潮喷18禁网站| 日躁天天爽爽| 欧美亚州色的图| 九九九九久久久| 日韩三A大片在线观看| 60秒免费视频| 麻豆精品久久久久久久| 国产日韩欧美亚洲精品95| 日日躁天天躁狠狠躁| 台湾肥佬网一区二区三区| 中日韩欧美精品无码AⅤ一区二区| 欧美大波激情xxxx| 一本久道在线综合视频| 欧美一品道| 日本欧美韩国国产在线| 狠色婷婷久久一区二区三区_| 日韩免费看在线黄色片| 亚洲欧美日韩精品久| 亚洲制服欧美另类内射| 久久精品色欧美aⅴ一区二区| 久草视频观看视频在线| 国产毛片在线| 中文操嬖片。| 成人小电影网站tex| 大香蕉男女超碰精品在线| 啊啊啊好舒服视频| 少妇国产不卡| 亚洲美女精品| 伊人AAA| 亚洲天堂热| 欧美强奸一区二区诱惑| 欧美一级国产一级| 东京热视频网| 1000部熟女视频在线观看| 天天肏天天干| 男人天堂网站| CCYY草草影院地址入口| 波多野结衣之双飞调教在线播放| 91黑人狂躁丰满熟妇| 色97干| 蜜臀久久99精品久久久久久酒店 | 亚欧韩av| 4399成人黄A片| 九九久久精品| 91人妻丝袜无码| 国产婷婷一区| 中文幕97| 日天天九九天堂666| 蜜汁欧美| 91精品人| 国产理论视频在线播放| 亚洲AV无码久久久国产精品 | 亚洲男人天堂2019| 神马久久久久眼| 久久99草| 青娱乐啪啪视频| 国产女s强制榨精视频| 中文字幕成人理论在线| 超碰97精品在线| 成人天天爽| 爱逼综合| 最新国产亚洲精品精品国产亚洲综合| 99无码| 骚逼自拍99| 国内毛片欧美香蕉精品| 婷婷五月天成人| 亚洲日本大香蕉1| 96久久精品一二三区色欲| 婷婷视频在线免费观看| 福利视频一区二区微拍| 天天色综亚洲91污| 婷婷丁香五月天亚洲天堂网| 欧美在线啊啊| 亚洲18禁| 欧美A片中文字幕| 色狠狠综合噜一二三区| 激情小说亚洲| 日本91白丝| 欧洲小说色图视频另类| 最新9久久久9免费视频| 日本精品无码三级网站| 成全在线观看免费观看| 欧美91精品国产自产| 综合网欧| 亚洲 小说 欧美 激情 另类| 黄色工厂这里只有精品| 国产熟女完整版中字| 午夜天堂精品久久久久91| 97超碰免费人人性爱| www.色操逼| 香港久久久| 日韩啪啪啪啪啪| 97超碰公开| 熟女视频久久| 99热在线只有精品| 亚洲 日本 一 二 三| 久久人妻熟女一区二区| 国产熟女少妇一区| 成人一道本免费视频| 国产精品欧美激在线| 亚洲国产精品9999在线观看| WWW美腿丝袜香蕉中文| 久操网线| 97超碰超| 欧美日韩精品国产91| 在线观看AV片| 欧美色欧美| 亚洲影院小综合| 天天干人妇| 91综合色噜噜| 安微少妇操BBB| 欧洲天天在线| 爱媛媛久久国产福利| 极品国产内射| 无卡一区=区| 亚洲精品 超碰| 99久久网站| 欧洲综合无码| 搡老女人老熟女91老熟女综合网| 久久久久久久久久久久黄色 | 色丁香五月婷婷| 国产一区二区免费福利片| 可乐操亚洲蜜911| 亚洲 欧美 小说| 99热91| 欧美色性爱| 韩国手机不卡无码三级视频| 亚洲图片91| 欧美热图99| 欧美人妻另类在线| 天天看高清麻豆| 永久免费av无码网站国产app| 中日韩免费看男女操逼大全| 欧洲自拍色图gif在线| 国产精品久久久久无码A√| 蜜桃在线观看一区二区三区| AA级电影三区| 91美腿丝袜在线观看| 神马午夜久久久| Aa东京男人的天堂| 色吊丝 日日骚 清纯唯美| 97超碰色| 黑丝自慰喷水网站| 91free福利| 九九九九9999| 日韩成人人妻网站| 青青久操| 欧美性第1页| 亚洲国产一区二区三区四区国产| 啪啪啪东京| 亚洲色 国产 欧美 日韩| 国产女人和拘做爰视频 | 91av一区二区在线观看| 襙一襙| 久久久九97| 一区二区蜜臀| 久久中久文96| 91综合网站| 秋霞网—男女啪啪亚洲免费体验区 | 日语五十路和六十路亚洲国产精品| 青青草毛片| 伊人久久综合影院| AV九九| 伊人国产视频| 欧美姓爱综合网| 伊人久久综合影院精品久久久| 日美免费黄片| 久久大香蕉手机高清| 加勒比久久av| 日本精品一区二区三区四区的功能| se吧提供国产乱老熟视频胖女人 | 五月丁香婷婷色| 热久久99999| 欧美色九九九| 久久久999国产精品| 日韩欧美中文字亚洲慕| a片偷拍视频| 亚洲天堂7777| 天天摸天天碰天天添青青| 香蕉精品二区二区| 99久久精品国产高潮| 亚洲人在线成线成人| 蜜臀AV午夜精品久| 日韩成人大片在线观看| 91少妇香蕉久久精品| 翔田千里无码中出中文字幕| 亚洲色图久久成人| 91综合色噜噜| 俺去久久| 久草综合网| 性爱视频久久| 男人下部插入女人下部| 人人超碰在线观看黄| 欧美色图自拍| 97亚洲精品| 91老司机视频| 人妻天天爽| 天天操女人| 欧美性巨大╳╳╳╳╳高跟鞋| 秋霞一区二区三区四区五区六区七区| 特级毛片特黄久久免费看| 后入人妻无码| 国产欧美成人精品| 国产 日韩 欧美一区| 立川理惠无码一区二区| 国产乱伦视频污| 新怡红院| 干B| 久久精品久久九九精品| 在线黄色污污网站| 91粉嫩萝控精品福利网站_精品影音先锋国| 97超碰这里只有精品| 免费毛片在线播放| 五月亭亭六月丁香| silk lablo在线观看一区二区| 人人干人人操人人..com| 久草看看看| 97超久碰| 国产农村妇女一区二区| 国产一区二区三区免费视频在性观看 | av2014 日韩在线中文字幕| 91蜜桃婷婷狠狠久久综合9色| 亚洲伊人成综合成人网| 偷窥自拍亚洲| 色 亚洲 91| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美色视| 97se综合网| 开心激情婷婷| 青娱乐久久艹| 无码免费在线观看黄色片| 99精品国产户外露出| 208天天久久九九九| 久久綜合很很很| 五月激情小说| 99精品在线观看| 天天色综亚洲91污| 日韩免费大片一级播放| 久久久新亚洲AV| 色综合91好| 亚洲人综合19| 天天干夜夜鈤| 麻豆天美在线| 在线天堂资源亚洲| 亚洲 欧美 日韩另类 麻豆| 夜夜 中文视频rt| 人人天天干干| 国产小u女在线观看| 91老妇女| 德国一二三不卡| 东北丰满熟女国产一区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 香蕉综合网| 国产视频三区四区| 又摸又舔在线观看网站| 欧美一级在线观看成人| 欧美精品99久久久| 熟妇操花| 激情五月综合网| 九九无码久久精品视频| 中日无幕一二三四区| 欧美综合制服在线| 九九九九九九九| 欧美综合中文| 中文字幕丰满子伦无码专区在线视频最新| 97欧美精品| 操逼www.| 青青国产精品在线| 亚洲色图自拍| 精品78| 欧美顶级黄色大片免费| 九九热免费国产视频婷婷伊人五月 | 九九九九九九精品| 亚洲国产成人精品女人久久久| 日韩欧美成人性爱在线| 日韩精品99999| 91 国产丝袜在线播放-百度| 超碰2017| 天天日天天舔天天喷天天射| 超碰97最新人妻| 亚州男人天堂| 99热超碰在线| 亚洲 综合 第一页| 欧美大香蕉久| 99热色这里只有精品| 亚洲精品黑丝| 免费精品中文字幕| 午夜福利区| 日韩在线观看三级电影| 丁香五月色情| 久夜操| 粉嫩绯色AV一区二区在线| a人欧美综合天堂麻豆| 日本一区二区亚洲综合| 丁香五月成人| 日韩性色| 欧美老熟另类| 在线日韩精品一区二区三区| 国产原创精品| 午夜性刺激视频免费观看| 婷婷月色| 一级性爱视频免费观看 | J?P?NESEHD熟女熟妇伦| 草b在线| 综合色图,成人综合网| 操死我干死我| 精人妻无码一区二区三区伊人直播 | 日本少妇va7777| 天天综合色电影| 曰本人妻人人澡人人夹| 欧美综色欧| 亚洲网自拍| 欧美午夜精品久久久久久3D| 99国产精品视频尤物| 91综合网| 乱伦a片视频| 国产日韩中文字幕欧美| 五月天色图影视| 亚洲天天操| 美欧老女人97| 91中出视频| 婷婷午夜| 欧美国产日韩清纯唯美| 色墦五月丁香| 超碰 欧美| 美女自卫慰黄网站免费| 人妻娇喘 激情视频| 久色网| 国产suv一区二区三区6| 中文字幕精品人妻丝袜| 欧美爱三级日韩久久| 免费成人在线熟妇网| 老司机老司机午夜影院| 好涩综合| 五月天综合网| 牛黄色久午久| 免费一二区| 亚洲超碰综合网| 国模限制级电影| 性影在线视频| 啪啪自拍九九综合| 午夜性| 中文字幕 码 自拍 视频 区| 国产三级片在线观看| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 超碰无码加勒比| 一二三四区操操Av| 欧美日日夜夜| 一级啊性爱在线视频| 久久久久久9| 欧中美三级一区二区三区| 肥臀熟女福利视频一区二区| 综合网色| 国产精品极品美女视频| 国产偷人伦激情在线观看| 青青操视频在线| 欧美三级一级| 嗯嗯啊操我| 久久一二三四五六七八九区区区 | 国产美女在线精品免费看| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 深田咏美亚洲精品福利社| 眼镜人妻101.com| 国产精品国产亚洲区艳妇糸列| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 超碰97最新人妻| 亚州精人品大香蕉| 色五月激情综合网| www.色婷婷色综合| 奇米四色影视777久久久| 26uuu久久| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 午夜毛片高清免费不卡| 欧美激情欧美精品| 中文字暮97| 久热超碰| 国产精品熟女AV中文字幕在线播放| 男人夜色天堂ss| 偷拍 精品 另类 四区| 9久综合网| 欧美视频第二页| 91丝袜激情在线 | 韩国嫰模上门援交视频| 中文字幕第95页| 伊人九九| 国产成人欧美精品在线| 草莓精品视频在线免费观看| 精品人妻1区| 亚洲欧美经典一区二区| juliaann丝袜大战黑鬼| 欧美劲爆第一页| 日韩不卡在线一区二区| 欧美激情片一区二区| 亚洲清纯唯美| 97超碰超碰| 日韩Va亚洲va欧美Ⅴa久久| 综合网欧美在线| 91在线页| 综合91网| 97在线视频免费观看| 午夜电影在线观看无码专区| 97天天搞在线| 亚洲色图A| 大黄片做爱的大的| 91蜜臀在线久久久久| 国产和美国毛片| 久久亚洲中文字幕视频| 久久五月份| 久久有码视频| 日韩欧美一级特黄大片| 午夜啊啊啊| 九九九九精品九九九九| 97人人草| 97超级久久| 免费看日本操逼视频| 九一精品牛牛一区二区| 中国AV美女| 国产夜夜艹| 手机看片91人妻| 国产精品天美传媒| 黄色香蕉视频网站一区| 大香蕉伊在线久草麻豆天堂故事| 久久性生大片免费观看性| 爱我干综合| 78精品| 欧美夜夜狠| se..亚洲欧美| 久草综合京东| 国产特级毛片AAAAAA高潮流水 | 亚洲AV操| 干妹子| 精品国产一区二区三区av在线资源| 加勒比中文av| 亚洲精品蜜桃久久久久久久| 日韩性爱毛片操骚逼| 久久久久久裸体| 欧美视频边做饭边橾| 囯产精品久久久久久久久久二区三区| 国产精品色| 国产精品日韩在线一区| 天天躁夜夜躁狠狠躁AV| 欧美第一页性| 一,爱啪啪,在线免费视频| 男人的天堂com| 欧美性,亚州色| 骚逼高潮久久精品| av网站在线观看了| 中文字幕视频在线观看| 超碰天天操| 天天日天天舔天天喷天天射| 午夜福利在线合集| 97在线免费观看| 97久久综合网| 色综合20p| 97视频观看| www狠狠| 性爱乱伦视频免费| 少妇一区二区三区精选| 夜夜草天天| 国产无吗在线播放| 色操逼网| 综合久久六月久久婷婷| 亚洲黄网在哪免费看| 国产AV久久野战精品| 日本无码1| 污污汅18禁网站在线永久免费观看 | 91超级碰| 嫩呦国产一区二区三区AV| 欧洲精品二区| 2017大香蕉| 久久久久久性爱免费视频| 国产在线激情| 美欧色综合| 激情五月天中文字幕色| 人人搞人人插人人操| 欧美成人性爱视频在线播放| 日本不卡一区| 在线有码中文字幕| 人妻中文字幕精品无码 | 色哟哟国产精品免费网址| 97色色网| 麻豆九九九| 久久久久9999精品九九九| 国产精品一级二级在线| 亚洲清纯唯美| 欧美日韩成人在线| 人人潮人人摸| 国产野战露脸在线播放| 大学生口爆吞精| 99蜜月精品久久| www.婷婷| 日日日日做夜夜夜夜无码| 超碰碰小说97| 天美国产三级传媒| 韩日性爱av| 九七色图| 在线情色电影 91大 | 加勒比在线视频| 午夜视频好爽啊| 九久9精品| 裸体1区| 天天干天天拍| 日韩一性一交一A片俄罗斯| 少妇熟女一区二区三区| 少妇专区一二三四五| 伊人网av| 秋霞蝌科网日本一区| 91色综合| 97人人夜| 日日妻色网| 67194无码不卡| 国产欧美一区激情交| 日韩综合无码色欲vv| 9118禁| 欧美精品不卡一二三四在线91| 一道本东京热加勒比一区二区三区| 精品国产肉丝袜在线拍国语| 中文字幕精品一区欧美| 欧美乱欲| 蜜臀久久99精品久久久久电影| 日日夜夜国产综合| 久久极品一区二区| 日本欧美国内在线| 午夜120视频在线观看| 久久丁香久草综合网| 青青青青青手机视频| 熟女91网| 一级黄碟| 青娱乐手机日韩在线视频| 亚洲 中文 女同| 男人天堂2012| 在线只有精品| 激情看片网站| 国产午夜无码片在线观看影视| 成人AV超碰免费在线| 日本一区二区中文字幕久久| 大香蕉线| 精品国产乱码久久久影院| 日韩精品国模| 中文字幕文字幕无码一区二区三区电影99| 男人的天堂2018.| 97亚洲综合电影| 992这里有精品| 天天干天天干天天干| 久久99久久99久久99人受| 国模精品娜娜一二三区| 久久香蕉国产线看观看猫咪av| 国产精品无码av| AAAAAAAAA黄片| 久久精品国产亚洲AV无码做| 国产高清成人mv在线观看| 欧美精品日韩久久久九| 欧美探花网| 日逼视频日本| 玖玖玖玖精品国产剧情| 国产三级中文有码在线视频| 亚洲无码AV九九九| 日韩精品在线观看网站| 久操精品网| 99色综合| 人人喜人人妻| 中美日韩毛片| 国产午夜视频| 懂色av中文字幕一区二区三区天美| 日韩人妻丝袜美腿中文| 91麻豆天美国产欧美高潮| 国产激情在线| 亚洲天天综合| 日韩黄片视频试看| 无码高清专| 久久久五月天| 91女在线观看| 欧美日韩青操| 极品出轨视频网站| 91无遮挡| 国产 日韩 欧美高清| 91快色色色色色| 99精品久久| 观看视频图片一区二区三区| 亚洲综合九| 亚洲自拍小说| 18禁看网站一区| 欧美aaaaaaa| 99热精品在线播放| 97玖玖超碰| 青草伊人久久| 日本韩高清无砖码22o| 精品高清一区二区三区三州| 久热伊人| 超碰人妻久久人妻中文97| 综合网亚洲1| 精品久久久av无码免费| 亚洲成人一区二区精品| 亚洲影视综合网| 动漫av中文| 97超碰中文在线| 人人操人人摸人人看人人干| 久久人妻视频| 国外91| 大香蕉一级黄色片久久| a级成人毛片免费视频高清| 玖玖人人爱| 国产欧美日产一区二区三区 - 国产欧美日| 精品对白久久不卡| 国产操逼逼网| 96AV久久久| 久久久啊啊啊| 嗯啊抽插大香蕉网页| 97在线免费看| 国产丁香精品露脸视频| 强奸乱伦免费网站| 99热在线播放| 欧美日韩美女精品久草一区二区三区| 性色亚洲| 色五月首页| 91无摭挡| 一级毛片久久久久久久女人18| 亚州精人品大香蕉| 大干人妻| 一区操逼日比视频| 熟啊v色欧美热| 啊啊啊免费视频| 九九色婷婷| 色眯眯av| 成人无码在线视频网站| 97久久资源| 超碰碰97资源站| 黄色片大香蕉| 欧美一区二区三区黄色影视| 久久欲| 日本女厕偷拍| 欧美色女人| 五月丁香亭亭| 欧美日韩小说| 偷窥自拍A片| 一区AV| 日夜啪电影| 婷婷激情四射| AV中文在线| 亚洲天堂资源在线| 99热超碰在线| 九九九九一区| 无码日韩网站| 人妻喷水| 91精品丝袜久久久久久| 中出20p| 国产一区二区三区影片| 婷婷五月天色网| 日韩性爱小视频在线观看| 本道在线| 久久性爱大全| 人乳av| 亚洲乱熟女一区二区三区大香蕉| 亚洲AV不卡在线观看| 乱伦Av网| 国产精品久久久午夜夜伦鲁鲁| 青青操轻轻| 亚洲综合有码| 亚洲精品99| 色吧91| 97香蕉人人乳| 国产特级毛片AAAAAA高潮流水 | 亚洲a色| 欧美天天插| 亚洲中字幕日本一区二区三区| 伊人97色天使| 熟女这里只有精品6| 91久久久老司机| 操逼网免费无码视频| 高清无码91| 97免费在线视频在线观看| 日韩操啪| 国产妇女精品视频青青草| 日本在线视频导航| 老熟女91视频| 99re9这里只有精品| 一区二区三区探花在线观看| 夜夜精品视频一区二区| 婷婷五月天福利| 国产日韩精品suv| 中文字幕第23区| 亚洲九区| 视频一区二区三区精品| 人妻五十路在线| 日本污ww视频网站| 啪啪视频免费在线观看| 91性高| 五月天精品| Av手机版天堂网| 久久r精品| 91在线免费观看处女| 久操网无码在线| 日韩一级二级三级| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 99蜜月精品久久| www.狠狠干.coom | 久久婷婷色| 桃花色综合影院| 97超碰伊人| 91殴美大片| 大香蕉伊人久久| 国产日韩欧美中文在线播放 | 男人的天堂亚洲| 国产成人综合在线播放| 狠狠爱夜夜| 日本孕妇孕交| 怡红院怡春院| 国内毛片无码一级毛片| 亚洲**2021在线观看| 极品少妇久久久久| 丁香五月天久久精品视频一区二区三区| 国产呦精品一区二区三区下载| 天天色图| 精品人妻久久久久一区二区三区| 午夜精品久久久99| 五月天综合在线| 欧美丝袜制服久久| 99久久久久久亚洲精品不卡| 精品一区二区三区蜜桃| 日日做夜狠狠爱欧美黑人| 久久久精品国产亚洲伊人| 久久鲁干| 精品中文字幕第一页| 97爱| 97亚洲中文| 精品一区二区2| 免费成人在线熟妇网| 青青草日逼视频| 激情婷婷五月天| 国产精品久久成人免费| 亚洲 日本 国产 综合| 日本操逼视频免费| 青青操国产夫妻| 欧美人妻一区二区| 欧美日韩国产人人| 色噜噜人妻丝袜AV资源| 91N五十路| 91亚洲黑人| 人人天天欧洲| 国产第11页| 操B久久| 超碰性爱97| 极品粉嫩一区二区| 97午夜剧场日韩| 超碰三级秋霞| 天天操天天插| 色婷婷丁香五月| 综合激情五月丁香| 91超碰人人操| 97人人超| 9久热| 清柠毛片| 女同在线视频一区| 天天综合91在线| 亚洲色图在线视频| 久久理论字幕视频| 久久免费中文字幕在线观看| 欧美嗯啊……在线观看视频免费| 天天爽爽爽爽| 日韩三级久久久| 嗯嗯,啊啊,国产精品| 九九精品美女高溯喷水| 男人的天堂.com| 日日AV加勒比| 欧色性第一页| 在线五区| 欧美韩日精品99综合| 成人国产二区三区在线,男女精品。| 怡红院成人视频| 日少妇视频| 黑人免费福利视频| 性爱视频啪啪啪啪| 欧美一区二区三区蜜桃| 国产精品无码在线| 国产精品秘 福利姬在线观看| www.夜夜操| 人妻在线臀日韩| 精品国产乱码久久久兰草影视|