jQuery UIのdatepickerに '現在の週'インジケータを追加しようとしています。私はdatepickerが表示された後にトリガするカスタムイベントを持っています。半分は機能しますが、(ホバークラスがクリアされていても)すぐに上下に動くときに一種の遅れがあります。マウスが行を去った後に、なぜ境界がまだtr
に適用されているのかわかりません。ui-datepickerのアクティブ行のホバー状態
function addCalendarHover(){
$('.ui-datepicker-calendar').on('mousemove', 'tr', function() {
$(this)
.addClass('week-hover')
.find('td a').addClass('ui-state-hover');
});
$('.ui-datepicker-calendar').on('mouseleave', 'tr', function() {
$(this)
.removeClass('week-hover')
.find('td a').removeClass('ui-state-hover');
});
}
// add 'afterShow' event for jQUI date picker
$.datepicker._updateDatepicker_original = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function(inst) {
$.datepicker._updateDatepicker_original(inst);
var afterShow = this._get(inst, 'afterShow');
if (afterShow)
afterShow.apply((inst.input ? inst.input[0] : null)); // trigger custom callback
}
$('#date1').datepicker({
changeMonth: true,
changeYear: true,
afterShow: function(date) {
addCalendarHover();
}
});
.ui-datepicker-calendar > tbody > tr {
border: 1px solid white;
}
.ui-datepicker-calendar > tbody > tr.week-hover {
/*border: 1px solid #ffaf46;*/
border: 1px solid #ffaf46;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
Date Picker on input field: <input type="text" id="date1" name="date1"/> <br/>
https://jsfiddle.net/Echilon/5y0wampc/
こんにちは。あなたのコードスニペットでバグを再現することはできません: '(どのブラウザーを使用しますか? –
ホバー上に1.1pxのボーダーを追加して奇妙になりました –
マウスを数週間にわたって素早く上下に動かすと、これは、StackOverflowの組み込みエディターを使用するよりも、JSFiddleでより顕著ですが、まだそこにあります。 – Echilon