Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果“自动完成”位于页面底部,则“自动完成”选项浮动在文本区域上方_Javascript_Jquery_Autocomplete - Fatal编程技术网

Javascript 如果“自动完成”位于页面底部,则“自动完成”选项浮动在文本区域上方

Javascript 如果“自动完成”位于页面底部,则“自动完成”选项浮动在文本区域上方,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我们正在使用此自动完成插件: 但是,当输入字段位于页面底部时会出现问题。“自动完成”列表(在您开始键入时显示的列表)会移动其位置,这样,它就不会下拉文本框,而是浮动在文本框上方。如果清单上有很多项目也没关系。但是,如果选项很少且高度不够,则输入框和自动完成框之间存在巨大的差距 为了让它更清晰,以下是图片: 有人知道如何修改代码以避免这种情况发生吗?或者,无论发生什么,自动完成始终保持在输入框的底部 我认为这是jQuery的一部分: // reposition the results div a

我们正在使用此自动完成插件:

但是,当输入字段位于页面底部时会出现问题。“自动完成”列表(在您开始键入时显示的列表)会移动其位置,这样,它就不会下拉文本框,而是浮动在文本框上方。如果清单上有很多项目也没关系。但是,如果选项很少且高度不够,则输入框和自动完成框之间存在巨大的差距

为了让它更清晰,以下是图片:

有人知道如何修改代码以避免这种情况发生吗?或者,无论发生什么,自动完成始终保持在输入框的底部

我认为这是jQuery的一部分:

// reposition the results div accordingly to the search field

function repositionResultsDiv()
{
    // get the field position
    var sf_pos    = acSearchField.offset();
    var sf_top    = sf_pos.top;
    var sf_left   = sf_pos.left;

    // get the field size
    var sf_height = acSearchField.height();
//  var sf_width  = acSearchField.width();
    var sf_width  = 285;

    // apply the css styles - optimized for Firefox
    acResultsDiv.css("position","absolute");
    acResultsDiv.css("zIndex", 1000);
    acResultsDiv.css("left", sf_left - 2);
    acResultsDiv.css("top", sf_top + sf_height + 5);
    acResultsDiv.css("width", sf_width - 2);
}
显然,顶部偏移值应该更大(以便将其进一步向下推),但它似乎无法正确计算。

您可以控制“位置”属性。你可以用它做复杂的事情,也可以做简单的事情


请注意,jQuery在默认情况下所做的是尝试找到一个不冲突的位置。如果你改变了它,请确保不要让它变得更糟。

我已经找到了问题所在。显然,在该特定页面上,某些内容是在页面加载后生成的,因此偏移量值不考虑额外内容的高度

作为一种解决方案,我临时使用了一个不同的ID,并在jQuery上设置了一个条件,以便在检测到该ID时添加一个特定的高度。我想我需要使用一些实时方法,或者在加载autosuggest脚本之前先加载那部分内容,但现在这个临时修复就可以了