Dez 16
Bei einem Autocomplete Input-Feld mit JQuery (Autocomplete-Plugin von pengoworks.com), bei dem viele Elemente zurückgeliefert wurden, entstand eine Scrollbar in dem Resultate-Div. Das Problem: Ein Klick auf die Scrollbar im IE oder Opera klappte die gesamte Resultate-Liste zu, anscheinend auf Grund eines Javascript-Events blur() auf dem Input-Feld. Durch dieses Event wurde die Resultate-Liste geschlossen.
Mein Fix in jquery.autocomplete.js:
/* Variable um zu speichern, dass der Mouseclick auf dem Resultate-Div geschah */
var mouseDownOnSelect = false;
$jresults.mousedown(function() {
mouseDownOnSelect = true;
});
/* mouseup funktionierte leider nicht */
$jresults.mouseout(function(){
mouseDownOnSelect = false;
});
/* Bei einem Klick, prüfe ob der Klick außerhalb der Resultate-Liste geschah, */
/* wenn ja, schließe Fenster */
$j(document).click(function(){
if(!mouseDownOnSelect){
hideResultsNow();
}
});
/* Zusätzlich im blur()-Event des input-Feldes die If-Abfrage eingefügt */
$jinput.blur(function(event) {
if (!mouseDownOnSelect) { /* <--- */
hasFocus = false;
hideResults();
} /* <--- */
});