强制jQuery UI自动完成移动?

问题描述:

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

我已经试过这样:

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

我也尝试添加到里边反规则很重要,但没有影响!

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

看来盒子打开时会覆盖所有这些变化。对此有何想法?我真的需要一个解决方案。

感谢, 马尔蒂·莱恩

+0

这不会解决你的问题,但对于其未来的很好的了解,保证金左是marginLeft在jQuery的的CSS() - @ hereticalself – ngmir 2010-10-13 19:13:09

可以提供开放的可选功能()来做到这一点:

例子:

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

...将位置设置为200像素左右它的位置通常是

+0

作品,只是修改了选择像这个:$('#search')。autocomplete('widget')。css(); – 2010-10-14 13:27:58

+0

永远不会使用'parseInt(foo)'。总是使用'parseInt(foo,10)'(假设你正在处理base10,你就是这样) – 2012-06-13 18:29:17

我的自动完成在DOM结束时打开。完全不关闭触发输入... 我在考虑触发输入的索引,然后找到自动完成的相应索引,但我不知道为什么 - 它对我来说似乎不够健壮。

+0

同样发生在我身上,根据$(this).next()看起来真的很脆弱。 – 2012-06-13 18:17:29

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

jQuery -> 
    $('#search').autocomplete 
    open: (event, ui) -> 
     $('ul.ui-autocomplete').css('left', (index, value) -> 
     return 200 + parseInt(value))