オートコンプリートが関連付けられたテキストボックスがあります。また、入力ボックスのテキストに特定の文字が含まれている場合、オートコンプリート ドロップダウンにカスタム要素を追加しています。プラグインの _renderItem 関数をカスタマイズするこのカスタム要素を追加しています。
$tb.autocomplete({
/* OPTIONS HERE */
}).data("autocomplete")._renderItem = function (ul, item) {
if ($tb.val().indexOf('someText') > -1){
ul.append('<li class="dropdown-element"><a href="#" class="my-option">My custom option</a></li>');
}
return false;
}
ユーザーが「someText」を含むものを入力してEnterキーを押すたびに(ドロップダウンで何も選択せずに)、カスタム要素に対してオートコンプリートの「select」イベントが発生するようにします。
テキストボックスに「keyup」イベントのハンドラーを追加しようとしましたが、Enterキーを押すたびにハンドラーが呼び出され(ドロップダウンで選択された要素があったとしても)、「select」からのイベントの伝播をキャンセルできません' オートコンプリートのイベント ハンドラー。(私は e.stopPropagation と e.originalEvent.stopPropagation を試しましたが、それでも「keyup」ハンドラーによって処理されます)。
これを達成する方法についてのアイデアはありますか?ありがとう