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

が 1 つしかない場合datasetは、私と同じようにできます。footerデータセットに a を追加し、プレーンな HTML 文字列ではなく、DOM 要素として追加します。その後、必要に応じて変更することができ (たとえば、任意のイベントで)、変更がドロップダウンに反映されます。

例:

$('#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 に答える