我在我的网站上使用jQuery UI中的自动完成功能,并且工作正常,但我正在重新设计系统,因此我需要进行一次更改。目前,自动完成功能将在输入的底部打开。但是,我无法使用jQuery或CSS强制它进入自定义位置。
我试过这个:
$('#search').autocomplete('widget').css({
'margin-left': -200
//or
left: 200
});
我也尝试过添加!重要的规则,但没有影响。
我还尝试将css添加到.ui-autocomplete,没有任何结果。
似乎当框打开时,它会覆盖所有这些更改。对此有何想法?我真的需要一个解决方案。
谢谢, Martti Laine
答案 0 :(得分:1)
您可以为open()提供可选功能:
示例:
$("#search").autocomplete({
open: function(event, ui)
{$(this).next().css('left',
function(index, value) {return 200+parseInt(value)});
}
});
...将位置设置为通常位置的左侧200px
答案 1 :(得分:1)
我的自动完成功能会在DOM结束时打开。根本没有关闭触发器输入...... 我正在考虑查看触发输入的索引,然后找到自动完成的相应索引,但我不知道为什么 - 它对我来说似乎不够强大。
答案 2 :(得分:0)
像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))