javascript - 如何在多个 div 元素和上下文中初始化 typeahead.js?

标签 javascript jquery typeahead.js typeahead

出于各种原因,我需要能够根据上下文复制输入框。每次用户添加另一个行程时,如何初始化另一个 typeahead.js 实例?我似乎无法在 .on() 中初始化它

这是我当前的代码:

html:

<form>
    <div class="summary">
        <div class="trip">
          <input class="state tt-input">
          ... other code ...
        </div>
        ...
    </div>
    <button type="button" id="add">Add another trip</button>
</form>

j查询:

$(document).ready(function() {

  var additional = $('.trip').html();

  $('form').on("change", '.state', function(e){
      var $contextualDiv = $(e.target).closest('div');
      var $state = $contextualDiv.find('.state');
  });

  $('#add').click(function() {
    if ($('.summary').children().length >= 5) return;
    $('.summary').append('<div class="trip">' + additional + "<div>");
  });

  $('.state').typeahead( //or $state.typeahead (that doesn't seem to work)
     {
        hint: true,
        highlight: true,
        minLength: 1
     },
     {
        name: 'states',
        source: bh,
      });
});

最佳答案

我建议创建一个函数来设置给定实例的提前输入。 然后为每个新创建的实例调用该函数。

$(document).ready(function() {

  var additional = $('.trip').html();


  $('#add').click(function() {
    if ($('.summary').children().length >= 5) return;
    var new_trip = $('<div class="trip">' + additional + "<div>")
    $('.summary').append(new_trip);
    var state = new_trip.find('.state')
    setupState(state)
  });

  setupState($('.state'))
});

function setupState(state){
    state.typeahead(
     {
        hint: true,
        highlight: true,
        minLength: 1
     },
     {
        name: 'states',
        source: bh,
      });
}

关于javascript - 如何在多个 div 元素和上下文中初始化 typeahead.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887772/

相关文章:

javascript - jQuery 键盘 z-index 模式对话框问题

javascript - Angular 2多步动画

javascript - 命中检测 Canvas JS

jquery - 将元素拖动到特定的div

javascript - 在弹出窗口中 Bootstrap 提前输入

mysql - 如何使用 nodejs 和 ajax 使 typeahead 显示来自 mysql 的信息

javascript - document.executeCommand ('paste' ) 在 chrome 中不起作用

javascript - 从另一个包含的 JavaScript 调用包含的 JavaScript 代码的函数

javascript - jQuery 无法将数组作为 JSON 内容类型发送

javascript - Typeahead 0.9.3 - 清除本地建议缓存