首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery自动完成和标记插件(XOXCO)合并问题

问Jquery自动完成和标记插件(XOXCO)合并问题
EN

Stack Overflow用户
提问于 2012-03-08 11:37:00
回答 1查看 2.5K关注 0票数 5

我已经使用jquery自动完成了一段时间,到目前为止没有任何问题。我希望创建一个标记系统(例如堆栈溢出中的标记系统)。

为此,我使用了两个插件:

我让它使用以下代码运行和工作:

代码语言:javascript
复制
$('#related_tags').tagsInput({
    autocomplete_url : 'live_search.php',
    autocomplete : {
            minLength: 3,
            delay: 150,
            //DATA AS OPTION??
    },
   'height':'30px',
   'width':'auto',
   'removeWithBackspace' : true,
   'minChars' : 3,
   'maxChars' : 200,
   'placeholderColor' : '#666666'
});

但是,我需要改变livesearch显示找到的数据的方式(这样它就不只是显示标签了)。如果您没有同时使用这两个插件(比如您只使用自动完成)--这很容易,您只需这样做:

代码语言:javascript
复制
$( "#related_tags" ).autocomplete({
        source: 'live_search.php',
        minLength: 3,
        delay: 150
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a href='item.php'>" + item.label + " " + item.surname + "<span style='color:#003399;'>" + item.p_name + "</span></a>" )
            .appendTo(ul);
};

正如您所看到的,我不仅显示项目的标签,我还显示姓氏和p_name。

所以我的问题是:

当mergin将自动完成和标记插件放在一起时,如何使用数据呈现功能?

因为我认为数据不能作为一个自动完成选项,所以我不能简单地推高它。有什么想法吗?

如果你知道如何使用与xoxco不同的插件,请告诉我。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-08 18:56:31

该插件使用某种类型的隐藏输入,插件将jquery自动完成附加到其中。

因此,您只需将_renderItem覆盖到输入字段,就像简单的自动完成输入一样。

演示

因此,如果您将tagsInput插件应用于以下输入(来自网站插件上的示例):

代码语言:javascript
复制
<input name="tags" id="tags" value="foo,bar,baz" />​

$('#tags').tagsInput({
    autocomplete_url: 'some url'
});

您将以以下生成的标记结束:

代码语言:javascript
复制
<input name="tags" id="tags" value="foo,bar,baz" style="display: none; ">
<div id="tags_tagsinput" class="tagsinput" style="width: 300px; height: 100px; ">
    <span class="tag"><span>foo&nbsp;&nbsp;</span><a href="#" title="Removing tag">x</a></span><span class="tag"><span>bar&nbsp;&nbsp;</span><a href="#" title="Removing tag">x</a></span><span class="tag"><span>baz&nbsp;&nbsp;</span><a href="#" title="Removing tag">x</a></span><div id="tags_addTag">

    <input id="tags_tag" value="" data-default="add a tag" style="color: rgb(102, 102, 102); width: 80px; " class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></div>

    <div class="tags_clear"></div>
</div>

参见输入字段tags_tag.这是自动完成插件附加到的元素。然后,您可以简单地重写_renderItem

代码语言:javascript
复制
$('#tags_tag')
    .data('autocomplete')
    ._renderItem = function(ul, item) {
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append("<a href='item.php'>" + item.someProperty + "</a>")
            .appendTo(ul);
};​
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9617041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档