_suggest()
方法はmenu.refresh()
呼び出したコンストラクタで左下半径
を除去し、したがって、メニュー項目のui-corner-all
クラスをリセットします入力が変化するたびに、しかし、open()
コールバックが_suggest()
内のすべてのmenu.refresh()
呼び出しの後に呼び出され、そして所望のようにクラスを調整するための賢明な場所です:
$("#autocomplete").autocomplete("option", {
open: function(event, ui) {
$(this).autocomplete("widget")
.menu("widget").removeClass("ui-corner-all")
.find(".ui-corner-all").removeClass("ui-corner-all");
}
});
日付ピッカーウィジェットは少し厳しいですが、それは一種の半ように組み込まれているとして、 -singleton。指定したコールバックオプションのどれが適していないので、ここでは、それを一貫して行うためにモンキーパッチを必要とする:デフォルト_updateDatepicker()
実装は戻り値がないことを
// 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");
};
注意。また、_updateDatepicker()
メソッドがでなく、のインタフェースメソッドであることに注意してください。したがって、利用可能であるとは限りません。
.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;
}
より特異性(または!important
指令)これらのセレクタが尊重されることを保証するために使用することができる。このように、角の修正を達成する最も一貫性のある方法は、線に沿って、適切なCSSです。これはまさにjQueryがテーマクラス–を使っていることです。興味深いハックですが、スタイルが利用できない限り、それほどクリーンなオプションはありません。…
ありがとうございます。しかし、CSSスタイルシートを変更せずに実際のjQuery UIを制御することに関連しています。 – Moak