Die _suggest()
Methode der automatischen Vervollständigung Widget ruft menu.refresh()
, und daher setzt die ui-corner-all
Klasse für Menüpunkte, usw., jedes Mal, wenn sich der Eingang ändert. Allerdings ist der open()
Rückruf nach jedem menu.refresh()
Anruf innerhalb _suggest()
genannt, und so ist ein sinnvoller Ort, um Klassen wie gewünscht einstellen:
$("#autocomplete").autocomplete("option", {
open: function(event, ui) {
$(this).autocomplete("widget")
.menu("widget").removeClass("ui-corner-all")
.find(".ui-corner-all").removeClass("ui-corner-all");
}
});
Der Datumsauswahl-Widget ein wenig härter ist, als es gebaut ist irgendwie ein halb zu sein -singleton. Hier brauchen wir einen Affen-Patch es konsequent zu tun, da keiner der Rückruf gelieferten Optionen geeignet ist:
// store the built-in update method on the "global" instance...
$.datepicker.__updateDatepicker = $.datepicker._updateDatepicker;
// ...and then clobber with our fix
$.datepicker._updateDatepicker = function(inst) {
$.datepicker.__updateDatepicker(inst);
inst.dpDiv.removeClass("ui-corner-all")
.find(".ui-corner-all").removeClass("ui-corner-all");
};
Beachten Sie, dass die Standard-_updateDatepicker()
Implementierung keinen Rückgabewert hat.Beachten Sie auch, dass die _updateDatepicker()
-Methode nicht eine Schnittstellenmethode ist, daher sollte nicht davon ausgegangen werden, dass sie verfügbar sind. Als solches ist der konsequenteste Weg, um die Ecke fix zu erreichen, ist mit entsprechendem CSS, entlang der Linien von:
.ui-autocomplete.ui-menu.ui-corner-all,
.ui-autocomplete.ui-menu .ui-menu-item > a.ui-corner-all,
.ui-datepicker.ui-corner-all,
.ui-datepicker-header.ui-corner-all,
.ui-datepicker-next.ui-corner-all,
.ui-datepicker-prev.ui-corner-all {
border-radius: 0;
}
Mehr Spezifität (oder der !important
Richtlinie) verwendet werden, kann diese Wähler eingehalten werden, um sicherzustellen. Dies ist genau der Grund, warum jQuery theme-Klassen verwendet – diese Dinge in einem interessanten Hack fudging, aber es ist die weniger saubere Option, es sei denn Stil ist nicht verfügbar und hellip;
Danke, aber die Frage bezieht sich auf die eigentliche jQuery UI zu steuern, ohne CSS-Stylesheets zu ändern – Moak