Twitter Typeahead 不显示建议

Twitter Typeahead not showing suggestions

我在使用 Wordpress 中的标签管理器进行 Twitter 预输入时遇到问题。

跟踪代码管理器正在运行。

据我所知,所有 js 脚本都在加载,json php 文件正在预加载。在检查器中验证。

如果重要的话,这个标签 div 位于 bootstrap 网格内。

HTML

            <div class="span6 cs_gray_t">
                <div id="prefetch">
                    <input type="text" name="tags" id="inTags" placeholder="Enter Tags" class="typeahead tm-input tm-tag-success" autocomplete="off" size="20" />
                </div>
                <p>Text...</p>
                <p>Text...
<!-- list a few random tags to help get them started --> 
<?php
    $i = 1;
    foreach ($topCharTags as $ts){
        echo $ts;
        if ($i < 10){
            echo ", ";
        }
        $i++;
    }
?>
                </p>
            </div>

那是 HTML 块,这是我的 JS。

 var countries = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  limit: 10,
  prefetch: '../../../wp-content/themes/ata-child-files/js/json-tagbuild.php'
});

countries.initialize();

console.log(countries);
var tagApi = jQuery(".tm-input.tm-input-typeahead").tagsManager({
    prefilled: [<?php echo $existingTags ?>],
    blinkBGColor_1: '#FFFF9C',
    blinkBGColor_2: '#CDE69C',
    maxTags: 20,
    tagsContainer: "#divTagBox"
});
jQuery(".tm-input.tm-input-typeahead").typeahead(null, {
  source: countries.ttAdapter()
}).on('typeahead:selected', function (e, d) {
    tagApi.tagsManager("pushTag", d.name);
});

所以我尝试使用他们网站上的示例进行预取,几乎没有更改。我只是不明白为什么它不起作用。

在查看示例的源代码时,我看到它呈现了 pre 元素,然后用建议填充这些元素。我没有看到它在我的来源中这样做。

如有任何帮助或建议,我们将不胜感激。几天来我一直在弄乱这件事,它就是不想工作。

这基本上可以正常工作,但线路有问题

source: countries.ttAdapter()
}).on('typeahead:selected', function (e, d) {
    tagApi.tagsManager("pushTag", d.name);

我的 JSON 是一个字符串,我认为这个函数处理一个对象数组。我该如何更改它以便它只使用字符串?

感谢您的帮助和建议!

我无法让 Twitter Typeahead 与标签管理器一起使用。所以我改为使用 jQuery UI 自动完成。这很好用!所以使用相同的 HTML 我改用这个 JS。我只是将我的 JSON 请求作为 var 回显,效果很好!

<script type="text/javascript">

jQuery(".tm-input").tagsManager({
    prefilled: [<?php echo $existingTags ?>],
    blinkBGColor_1: '#FFFF9C',
    blinkBGColor_2: '#CDE69C',
    maxTags: 20,
    tagsContainer: "#divTagBox"
});

</script>

<?php
$sqlJSON = "
    SELECT DISTINCT
      fyxt_tax_list.tax_term
    FROM
      fyxt_tax_list
    ORDER BY
      fyxt_tax_list.tax_term";
$resultJSON = $wpdb->get_col($sqlJSON);
?>

<script>
jQuery(document).ready(function($) {      
  $( function() {
    var availableTags = <?php echo json_encode($resultJSON); ?>;
    $( "#inTags" ).autocomplete({
      source: availableTags
    });
  });
});
</script>

我希望我能走这条路。漂亮、干净、简单的代码。