2

Typeahead JS中,我试图在用户开始输入后添加一个出现在下拉列表底部的选项。目前,我正在使用“onOpened”自定义事件来触发在“tt-dropdown-menu”元素初始化后添加一些 HTML。

.on('typeahead:opened', onOpened)
  function onOpened($e) {
    $('.tt-dropdown-menu').html( "<a href="">Add Option</a>" );
}

问题是在初始化下拉列表时添加了 jQuery HTML,如预期的那样,然后当用户开始键入具有自动完成结果的新数据集元素时,将在该 jQuery HTML 下方添加,因此 jQuery HTML 永远不会出现在底部下拉菜单。您不能将 jQuery HTML 附加到数据集,因为在初始化下拉列表时该元素不存在。

有没有更简单的方法解决这个问题?其他自定义事件似乎没有涵盖这种情况。

4

1 回答 1

1

如果你只有一个dataset,你可以像我一样做:将 a 添加footer到数据集中,并将其添加为 DOM 元素,而不是纯 HTML 字符串。然后,您可以随意更改它(比如在您希望的任何事件上),您的更改会反映在下拉列表中。

例子:

$('#myinput').typeahead({
    // rest of your regular stuff, like 'name', 'remote', etc.
    footer: $('#dropdown-footer'),
});

...您在 dom 中某处拥有dropdown-footer的 a 的 ID在哪里。div然后,您可以执行以下操作:

$('#dropdown-footer').html('Hello')
于 2013-08-07T17:42:46.690 回答