Jquery UI autocomplete combobox button-click-Ereignis

Erlebe ich seltsame Verhalten mit jquery ui autocomplete, wenn Sie es zum erstellen einer combobox. Immer, wenn ich Sie auf die Bildlaufleiste, um einen Bildlauf durch die Liste der Ergebnisse UND klicken Sie dann auf meine combobox button zum schließen der Ergebnisse die Ergebnisse, die Liste schließt und dann wieder öffnet. Ich erwarte, dass er das Menü zu schließen.

Schritte zu Repro

  1. open-jsfiddle demo
  2. Typ 'i' in der AutoVervollständigen-ODER schlagen Sie auf den dropdown-button.
  3. Klicken Sie auf die vertikale Bildlaufleiste zu Blättern, die Ergebnisse
  4. Klicken Sie auf den dropdown-button

Script Erstellen Button

 this.button = $("<button type='button'>&nbsp;</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 (Kraft lange Ergebnisse Menü zu scrollen)

.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;
}

Meine Lösung könnte sein, das schließen des widget, auch wenn der Fokus geht auf das widget selbst und nicht das input-element?

Irgendwelche Ideen, wie man diesen code ändern, damit es auf diese Weise verhält?

  • Könnten Sie das HTML -, vielleicht ein JSFiddle? Wäre viel einfacher, es zu bekommen, dann.
  • Ich verstehe nicht, was Sie versuchen zu erreichen.. jsfiddle
  • Was für ein problem du eigentlich zu lösen versucht?
  • Mein probem ist, dass wenn ich auf button-widget angezeigt wird, dann klicke ich auf das widget, und Sie erneut auf die Schaltfläche, mein widget neu erstellt wird und nicht geschlossen ist, möchte ich mein dropdown-widget zu öffnen und zu schließen, toggle Angelegenheit!
InformationsquelleAutor Davor Zubak | 2012-04-19
Schreibe einen Kommentar