微信小程式 select 下拉框元件

2022-02-16 02:27:30 字數 2551 閱讀 2288

一、原始碼位址

二、效果圖

三、元件原始碼

1. select.wxml

<

view

class

="select-box"

>

<

view

class

="select-current"

catchtap

="openclose"

>

<

text

class

="current-name"

>}

text

>

view

>

<

view

class

="option-list"

wx:if

="}"

catchtap

="optiontap"

>

<

text

class

="option"

data-id

="}"

data-name

="}"

>

}

text

>

<

text

class

="option"

wx:for

="}"

wx:key

="}"

data-id

="}"

data-name

="}"

>

}

text

>

view

>

view

>

說明:用 catchtap 而不用 bindtap 是為了阻止事件冒泡,為了實現點選頁面其他地方關閉 select, 所以在父頁面(index.wxml)最外層繫結了 bindtap="close" 方法, 不阻止冒泡的話會執行父元件的 close 方法

2. select.js

component(,

defaultoption:

},key: ,

text:

},data:

},methods: );

//呼叫父元件方法,並傳參

this.triggerevent("change", )

},openclose() )

},//此方法供父元件呼叫

close() )}},

lifetimes: 格式,則轉為 格式

let result =

if (this.data.key !== 'id' || this.data.text !== 'name') =item

result.push()}}

this

.setdata(,

this

.data.defaultoption),

result: result})}

}})

說明:properties中的 key 和 text 是為了做屬性名轉換。比如我現在的資料結構如下:

[, , ]
而 select 元件要求的資料結構是:

[, , ]
因此我們就要將 city_id 轉換成 id,city_name 轉換成 name。 怎麼實現屬性名轉換呢? 就是通過 key 和 text 這兩個引數。

3. select.json

}

4. select.wxss

.select-box .select-current .select-current::after .current-name .option-list .option .option:last-child
四、元件的使用index.wxml

小程式下拉框

右鍵這個資料夾,新建下面的這個component。然後輸入需要建立的名稱,我這裡為了方便就取了select的名字。然後就會自動建立4個檔案,js json wxml wxss。元件樣式 元件的wxml class com selectbox class com scontent bindtap se...

下拉框處理(select)

在ui自動化測試過程中,經常會遇到一些下拉框,我們有三種可選方式來操作下拉框。第一種方法 基於webdriver的兩次click,很容易出現問題,不建議使用。由於部分下拉框在點選一次後,失去焦點再點下一次時可能下拉框中的引數就消失了,那麼就無法進行選擇了,所以會出現無法定位到目標元素或目標元素不可見...

select下拉框預設選擇

select標籤構成的下拉框和jquery通過js構建的下拉框用法一樣。例如 html下拉框 啟用 停用 js控制的下拉框 editdisplayname combobox 兩者的本質是相同的,但是,select標籤建立的下拉框會預設選中第乙個選項。而js控制的下拉框預設是不會選中任何選項的。當然s...