jQueryUI Autocomplete下拉菜单样式丢失问题求助
嘿,这个问题我碰到过好多次了——根源其实很简单:你没引入jQuery UI的官方CSS文件!
jQuery UI的Autocomplete组件,它的下拉菜单美化完全依赖配套的样式表,官方演示页面之所以显示正常,是因为页面里已经加载了对应的CSS,而你本地代码只引入了JS部分,没加样式,所以就只能显示原生的带黑色项目符号的列表了。
给你几个具体的解决步骤:
第一步:引入jQuery UI的CSS文件
你需要在HTML的<head>区域,和引入jQuery、jQuery UI JS文件的位置一起,加上样式表的引用。如果是本地下载的jQuery UI包,路径大概是这样:<link rel="stylesheet" href="jquery-ui/css/jquery-ui.css">要是用CDN版本的话,直接找对应版本的link标签就行(注意要和你使用的jQuery UI版本匹配,避免版本不兼容)。
第二步:确认样式路径正确
检查一下你写的CSS路径是不是准确,比如本地文件有没有放在对应的文件夹里,有没有拼写错误。可以用浏览器F12打开控制台,查看“网络”标签里有没有404的样式文件,要是有就说明路径写错了。第三步:排查自定义样式冲突
要是已经加了CSS但还是有问题,看看你自己写的样式里有没有全局设置ul或者li的list-style-type,比如不小心写了ul { list-style-type: disc; },这会覆盖jQuery UI的样式。用开发者工具选中下拉菜单的元素,看看.ui-autocomplete、.ui-menu-item这些类的样式有没有被正确应用。
补充一句:哪怕你把远程调用改成了本地数据,Autocomplete生成的下拉菜单DOM结构还是会带上jQuery UI的专属样式类,没有CSS来渲染这些类,自然就变回原生列表的样子啦。
内容的提问来源于stack exchange,提问作者DShultz

