在Tag-it中隐藏自动完成框

时间:2016-05-24 13:32:47

标签: jquery jquery-ui tag-it

我的页面上有一个tagit元素:

$("#myTags").tagit({
    fieldName: "tags",
    availableTags: availableTags,
    showAutocompleteOnFocus: true,
    allowSpaces: true
});

使用此代码添加标签时:

$("#myTags").tagit("createTag", tag);

当我点击输入然后点击外面时,弹出自动完成框并隐藏!

我试图通过代码模拟这个,但没有任何反应:

$(".ui-widget-content.ui-autocomplete-input").focus().blur();

1 个答案:

答案 0 :(得分:1)

我也有这个问题,终于找到了解决方案!

var tagElement = $("#myTags").tagit({
    fieldName: "tags",
    availableTags: availableTags,
    allowSpaces: true,

    /* you need to set these three options hide autocomplete after setting a tag */
    showAutocompleteOnFocus: true,
    beforeTagAdded: function (event, ui) {
        // turn autocomplete off
        tagElement.tagit('option', 'showAutocompleteOnFocus', false);
    },
    afterTagAdded : function(event, ui) {
        // turn autocomplete back on
        setTimeout(function () { tagElement.tagit('option', 'showAutocompleteOnFocus', true); }, 5);
    }
});

这是有效的,因为如果将showAutocompleteOnFocus选项设置为true,则将tagit代码设置为在添加标记后自动显示自动完成。因此,我们暂时将其设置为假,然后在5毫秒后,我们将其重新打开。