强制jQuery UI自动完成移动?
我在我的网站上使用jQuery UI的自动完成功能,它工作正常,但我正在重新设计系统,所以我需要对此进行更改。目前,自动完成在输入的底部打开。然而,我不能强制它到一个自定义的位置,无论是jQuery或CSS。强制jQuery UI自动完成移动?
我已经试过这样:
$('#search').autocomplete('widget').css({
'margin-left': -200
//or
left: 200
});
我也尝试添加到里边反规则很重要,但没有影响!
我也尝试添加CSS到.ui-autocomplete,没有任何结果。
看来盒子打开时会覆盖所有这些变化。对此有何想法?我真的需要一个解决方案。
感谢, 马尔蒂·莱恩
可以提供开放的可选功能()来做到这一点:
例子:
$("#search").autocomplete({
open: function(event, ui)
{$(this).next().css('left',
function(index, value) {return 200+parseInt(value)});
}
});
...将位置设置为200像素左右它的位置通常是
作品,只是修改了选择像这个:$('#search')。autocomplete('widget')。css(); – 2010-10-14 13:27:58
永远不会使用'parseInt(foo)'。总是使用'parseInt(foo,10)'(假设你正在处理base10,你就是这样) – 2012-06-13 18:29:17
我的自动完成在DOM结束时打开。完全不关闭触发输入... 我在考虑触发输入的索引,然后找到自动完成的相应索引,但我不知道为什么 - 它对我来说似乎不够健壮。
同样发生在我身上,根据$(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))
这不会解决你的问题,但对于其未来的很好的了解,保证金左是marginLeft在jQuery的的CSS() - @ hereticalself – ngmir 2010-10-13 19:13:09