slickGrid にオートコンプリート テキストフィールドを備えたエディターがあります。これは(簡略化して)次のようになります。
function AutoCompleteEditor(args) {
var $input;
this.init = function () {
$input = $("<INPUT id='tags' class='editor-text' />");
$input.appendTo(args.container);
$input.bind("keydown.nav", function (e) {
if (e.which === $.ui.keyCode.LEFT || e.which === $.ui.keyCode.RIGHT) {
e.stopImmediatePropagation();
}
if((e.which === $.ui.keyCode.DOWN) || (e.which === $.ui.keyCode.UP)){
e.stopImmediatePropagation();
}
if(e.which === $.ui.keyCode.RETURN){
e.stopImmediatePropagation();
}
})
$input.focus().select();
$input.autocomplete({
minLength: 2,
autoFocus: true,
source: function(request, response) {
.....
},
focus: function( event, ui ) {
return false;
},
select: function( event, ui ) {
event.target.value = ui.item.label;
return false;
},
open: function( event, ui ) {
$(this).autocomplete( "widget" )
.find( "ui-menu-item-alternate" )
.removeClass( "ui-menu-item-alternate" )
.end()
.find( "li.ui-menu-item:odd a" )
.addClass( "ui-menu-item-alternate" );
},
appendTo: args.container,
width: 500,
});
};
今、私は2つの問題があります:
1) 提案リストは、エディター フィールドよりも少し狭いです。しかし、私はそれをもっと広くしたい - おそらくその中で最も幅の広いアイテムと同じくらい広い
2) 入力フィールドの上下矢印キーを無効にしましたが、矢印が提案項目を選択するようにリストにフォーカスしていません。
私のコードで何が間違っていると思いますか?
助けてくれてありがとう