我正在使用 jQuery TextExt 插件 ( http://textextjs.com/ ) 创建一个输入字段,用户可以在其中输入语言作为标签,类似于 Facebook 输入标签的方式。
总体而言,该插件运行良好。
然而,我遇到了一个障碍,我似乎无法克服。我在输入字段上使用 TextExt,如下所示:
<script type="text/javascript">
$('#id_languages').textext({
plugins : 'tags prompt suggestions arrow autocomplete',
tagsItems : ['English'],
suggestions : languages, //variable set earlier
prompt : 'Add more here...',
});
</script>
它应该正常工作。现在,我添加的标签越多,输入字段增长得越多(正如预期的那样)。
但是,在某些时候,它会超出我给定布局可接受的高度。
是否有一种工作方式可以使用 TextExt 指定输入元素的最大高度,并添加垂直滚动条,而不会在带有滚动条的 div 内弹出建议下拉列表?
我希望这是有道理的,我现在有点困惑。
最佳答案
我已经检查了源代码,没有任何地方可以更改它以在不经过黑客攻击的情况下完成您所需要的。
最接近的答案是限制每个输入的标签数量,这可以是 像这里描述的那样完成:How to limit total number of inputs to textExt plugin?
$('#id_languages').textext({
plugins : 'tags autocomplete',
tagsItems : Sourcearray,
ext: {
tags: {
addTags: function(tags) {
if(checkLength()) {
$.fn.textext.TextExtTags.prototype.addTags.apply(this, arguments);
}
}
}
}
});
这是验证函数checkLength()
:
function checkLength(){
if($("#id_languages").next().children().length < 4){
return true;
}
return false;
}
其中数字 4 是允许的标签数。
如果这不能令人满意,您将不得不侵入 texttext.core.js
和 textext.plugin.tags.js
并寻找以下函数:
invalidateBounds()
、preInvalidate()
和 postInvalidate()
并进行高度操作。
关于javascript - jQuery 文本扩展 : max height and scrollbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513378/