1

我在我的网站上使用来自 jQuery UI 的自动完成功能,它工作正常,但我正在重新设计系统,所以我需要进行这一更改。目前,自动完成功能在输入的底部打开。但是,我不能将它强制到自定义位置,无论是使用 jQuery 还是 CSS。

我试过这个:

    $('#search').autocomplete('widget').css({
        'margin-left': -200
        //or
        left: 200
    });

我还尝试将 !important 添加到规则中,但没有影响。

我也尝试将 css 添加到 .ui-autocomplete,但没有任何结果。

似乎当盒子打开时,它会覆盖所有这些更改。对此有任何想法吗?我真的需要一个解决方案。

谢谢,马蒂莱恩

4

3 回答 3

1

您可以为 open() 提供一个可选函数来执行此操作:

例子:

 $("#search").autocomplete({ 
                            open: function(event, ui) 
                                  {$(this).next().css('left',
                                    function(index, value) {return 200+parseInt(value)});
                                  }
    });

...将位置设置为正常位置的左侧 200px

于 2010-10-13T20:00:47.443 回答
1

我的自动完成功能在 DOM 末尾打开。根本不接近触发输入......我正在考虑查看触发输入的索引,然后找到自动完成的相应索引,但我不知道为什么 - 它对我来说似乎不够强大。

于 2011-03-03T22:45:20.353 回答
1

和 NeoSwf 一样,我发现我的自动完成功能被插入到 DOM 底部附近。依靠$(this).next()发现它是脆弱的。而不是this,我建议使用更具体的东西,比如'ul.ui-autocomplete'. 这是我的版本的 CoffeeScript:

jQuery ->
  $('#search').autocomplete
    open: (event, ui) ->
      $('ul.ui-autocomplete').css('left', (index, value) ->
        return 200 + parseInt(value))
于 2012-06-13T18:27:05.700 回答