强制jQuery UI自动完成移动?
我在我的网站上使用jqueryui中的autocomplete,它工作得很好,但我正在重新设计系统,所以我需要对此进行更改。当前,自动完成在输入的底部打开。但是,我不能强迫它使用自定义位置,无论是jQuery还是CSS 我试过这个:强制jQuery UI自动完成移动?,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我在我的网站上使用jqueryui中的autocomplete,它工作得很好,但我正在重新设计系统,所以我需要对此进行更改。当前,自动完成在输入的底部打开。但是,我不能强迫它使用自定义位置,无论是jQuery还是CSS 我试过这个: $('#search').autocomplete('widget').css({ 'margin-left': -200 //or left: 200 }); 我还试着添加!对规则很重要,但没有影响
$('#search').autocomplete('widget').css({
'margin-left': -200
//or
left: 200
});
我还试着添加!对规则很重要,但没有影响
我还尝试将css添加到.ui autocomplete,但没有任何结果
似乎当框打开时,它会覆盖所有这些更改。你知道吗?我真的需要一个解决办法
谢谢,
Martti Laine您可以为open()提供一个可选函数来执行此操作: 例如:
$("#search").autocomplete({
open: function(event, ui)
{$(this).next().css('left',
function(index, value) {return 200+parseInt(value)});
}
});
…将位置设置为正常位置左侧200px的位置我的自动完成在DOM结束时打开。根本不接近触发器输入。。。
我正在考虑查看触发输入的索引,然后找到自动完成对应的索引,但我不知道为什么-它对我来说似乎不够健壮 与NeoSwf一样,我发现我的autocomplete被插入到DOM底部附近。取决于
$(this).next()
找到它是易碎的。我建议不要使用这个
,而是使用更具体的东西,比如'ul.ui autocomplete'
。以下是我版本的咖啡脚本:
jQuery ->
$('#search').autocomplete
open: (event, ui) ->
$('ul.ui-autocomplete').css('left', (index, value) ->
return 200 + parseInt(value))
这并不能解决您的问题,但为了将来,很高兴知道jQuery的.css()-@hereticalselfWorks中的marginLeft是marginLeft,只是修改了如下选择器:$('search').autocomplete('widget').css();永远不要使用
parseInt(foo)
。始终使用parseInt(foo,10)
(假设您处理的是base10,您就是。我也是这样。取决于$(this)。next()看起来非常脆弱。