天天看點

jQuery UI中dialog 遮蓋 autocomplete的問題解決問題:autocomplete提示框被遮擋解決方法:設定z-index屬性

問題:autocomplete提示框被遮擋

最近在使用jQuery 插件fullCalendar做一個會議預約功能,建立預約時用到了jQuery UI的兩個插件dialog和autocomplete,結果遇到了下圖所示問題:autocomplete的傳回item被dialog遮擋啦。

由于對css不太熟悉,摸索了良久未能解決,到處搜尋未找到方案,最後請教了前端大牛,輕松搞定,不得不服,其間又學到了一些新技能,故稍作總結,希望能幫到和我一樣遇到此問題的前端小白們。

jQuery UI中dialog 遮蓋 autocomplete的問題解決問題:autocomplete提示框被遮擋解決方法:設定z-index屬性

首先介紹一個CSS屬性:

z-index 屬性設定元素的堆疊順序。擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面。

也就是z-index屬性值越大的元素會顯示越上面

詳細了解z-index屬性,請參考W3School:

http://www.w3school.com.cn/cssref/pr_pos_z-index.asp

網友部落格:http://www.uzzf.com/news/8287.html

解決方法:設定z-index屬性

在autocomplete item上點選右鍵,點選彈出菜單中“審查元素”,出現如下視圖:

jQuery UI中dialog 遮蓋 autocomplete的問題解決問題:autocomplete提示框被遮擋解決方法:設定z-index屬性
jQuery UI中dialog 遮蓋 autocomplete的問題解決問題:autocomplete提示框被遮擋解決方法:設定z-index屬性

可以看到 autocomplete 元素的z-index 是100

dialog的z-index值也是100,因為他們都引用了 ui-front類,而由于相同級别的z-index 顯示順序與文檔流順序有關,故下面的dialog元素 覆寫了上面的autocomplete 元素

找到了問題原因,解決方法自然就簡單了,隻需把autocomplete元素的z-index值設定大一些就行了。通過檢視元素屬性,我們發現autocomplete元素還具有ui-autocomplete這個類屬性,于是我單獨為這個類添加了z-index屬性,如下:

<style>

.ui-autocomplete{

       z-index: 11111;

}

</style>

如此,autocomplete元素自動使用了這個z-index更大的值。效果如下:

jQuery UI中dialog 遮蓋 autocomplete的問題解決問題:autocomplete提示框被遮擋解決方法:設定z-index屬性

原文出處:http://blog.csdn.net/rchm8519/article/details/42924927