2012-09-21 84 views
3

当前,自动完成结果框与我的输入框的左边缘对齐,并向右传播的宽度与我给出的宽度相同。但是,我的业务需求是将其与输入框的右边缘对齐,并且如果输入框位于页面的较靠边的一侧,则将其向相反方向展开,因为结果被剪切并且水平滚动被添加到视图中完整的结果。 (我可以修改我的'jquery-ui.css')Jquery自动完成对齐

任何人都可以帮忙吗?

回答

3

当前版本的jQuery UI允许为自动填充小部件提供一个带有选项的位置对象,具有与上述位置小部件相同的属性。所以你可以用它来定位建议列表,只要你喜欢。

看到这里http://jqueryui.com/demos/autocomplete/#option-position

,如果你需要改变位置dynamicaly - 你需要使用 “开放” 事件

代码示例

//Supply a callback function to handle the open event as an init option. 
$(".selector").autocomplete({ 
    open: function(event, ui) { ... } 
}); 
//Bind to the open event by type: autocompleteopen. 
$(".selector").bind("autocompleteopen", function(event, ui) { 
    ... 
}); 

里面他们,你可以改变位置自动排版形式css()

$('.ui-autocomplete').css({ 'left': x + 'px', 'top': y + 'px' }); 

PS:我不舒尔你可以在仅使用CSS实现,如位置取决于父HTML输入字段

+0

感谢安东。它确实改变了定位。不过,我需要动态地做到这一点。我的结果宽度是650px。我需要检查右侧的空间是否足够,结果没有修剪,否则在左侧显示。我可以管理逻辑,但需要可以应用的事件/地点。 – guravman

+0

请参阅更新,我希望它可以帮助你... –

+0

工作!谢谢安东! – guravman