添加了jquery ui-autocomplete-loading类,但样式不适用

问题描述 投票:1回答:3

我使用jquery ui自动完成功能在我的网站上搜索。我想在返回结果时添加一个简单的加载微调器。当加载结果时,jquery ui会自动在类'ui-autocomplete-loading'中添加。我已经为这个类增加了一些css,以便在它活动时添加背景图像。奇怪的是,类被添加和删除完全正常,但样式不适用。但是,如果我手动添加ui-autocomplete-loading类,则会显示样式。我一直在拉着我的头发试图解决这个问题!

自动添加'ui-autocomplete-loading'

http://i.stack.imgur.com/DyLNj.jpg

手动添加'ui-autocomplete-loading'

http://i.stack.imgur.com/BReHS.png

CSS:

.ui-autocomplete-loading {
  background: red url('/static/images/ajax-loader.gif') no-repeat right center!important;
}
css jquery-ui jquery jquery-ui-autocomplete
3个回答
3
投票

如果查看jQuery UI脚本,您将看到自动应用.ui-autocomplete-loading类。可以在css中覆盖此样式,以显示您选择的图像或样式。

其中一个捕获是与您的其他样式可能的CSS冲突。您可以通过调试DevTools,Firebug等中的脚本,然后在应用它们时检查元素样式来查明这是否是一个问题。

简单的解决方法是增加班级的特异性。例如,在CSS中添加input元素可能会有所帮助。 input.ui-autocomplete-loading { background:url('img/loading.gif') no-repeat right center; }

您可以在下面的示例中看到,我检查了CSS规则,发现Foundation框架中的样式覆盖了我的.ui-autocomplete-loading样式。通过在调试脚本时取消选中样式,我能够验证这一点。

所以,我修改了我的CSS,你可以在这里看到更新的样式。


2
投票

这里有点困难因为你试图覆盖现有的背景。

您可以做的是在输入字段中添加一个按钮。然后,您可以为自动完成加载添加样式。只需使用负边距来定位图标。

EG

<input><button class="search_icon"><button></input>

.search_icon 
{
    margin-left: -20px;
    background: #fff url(/assets/images/search-icon.png) no-repeat;
    border-style: none;
    width: 15px;
}

.ui-autocomplete-loading
{
   background: #fff url(/assets/images/ajax-loader.gif) no-repeat 95%;  
}

1
投票

这是jquery-ui本身在https://jqueryui.com/autocomplete/#remote网站上使用的代码。

确保images目录包含'ui-anim_basic_16x16.gif'。

<style>

       .ui-autocomplete-loading {

       background: white url("/images/ui-anim_basic_16x16.gif") right center no-repeat;

       }

</style>
© www.soinside.com 2019 - 2024. All rights reserved.