Występuje dziwne zachowanie z jquery ui autocomplete when using it to create a combobox. Ilekroć klikam na pasek przewijania, aby przewijać listę wyników, A następnie kliknij przycisk combobox, aby zamknąć wyniki, lista wyników zostanie zamknięta, a następnie ponownie otwarta. Spodziewam się, że zamknie menu.Jquery UI autouzupełnianie combobox przycisk kliknij wydarzenie
Kroki do Repro
- open jsfiddle demo
- typu 'ja' w autouzupełniania lub naciśnij przycisk menu.
- Kliknij pionowego przewijania do przewijania wyników
- Kliknij na przycisk rozwijanej
Script utworzyć przycisk
this.button = $("<button type='button'> </button>")
.attr({ "tabIndex": -1, "title": "Show all items" })
.insertAfter(input)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass("ui-corner-all")
.addClass("ui-corner-right ui-button-icon")
.click(function() {
// when i put breakpoint here, and my focus is not on input,
// then this if steatment is false????
if (input.autocomplete("widget").is(":visible")) {
input.autocomplete("close");
return;
}
// work around a bug (likely same cause as #5265)
$(this).blur();
// pass empty string as value to search for, displaying all results
input.autocomplete("search", "");
input.focus();
});
CSS (wymuszenie zbyt długich menu do przewijania)
.ui-autocomplete {
max-height: 100px;
overflow-y: auto;
/* prevent horizontal scrollbar */
overflow-x: hidden;
/* add padding to account for vertical scrollbar */
padding-right: 20px;
}
/* IE 6 doesn't support max-height
* we use height instead, but this forces the menu to always be this tall
*/
* html .ui-autocomplete {
height: 100px;
}
Moje rozwiązanie może zamknąć widżet, nawet jeśli fokus zostanie przeniesiony do samego widgetu, a nie elementu wejściowego?
Jakieś pomysły, jak zmodyfikować ten kod, aby działał w ten sposób?
można podać kod HTML, może JSFiddle? Byłoby wtedy o wiele łatwiej je zdobyć. –
Nie rozumiem, co próbujesz osiągnąć tutaj. [Jsfiddle] (http://jsfiddle.net/vR9s2/2/) –
Jaki problem próbujesz rozwiązać? –