1

私はWebアプリケーションを開発しています。このアプリケーションでは、jquerydatepickerプラグインを使用しました。インライン日付ピッカーとして日付ピッカーを使用しています。日付を選択すると、cssクラスを削除しようとしてui-state-highlightいますが、datepickerに反映されていません。

    $("#start_date").datepicker({
    beforeShowDay: greySelectedDateRange, 
    maxDate: 0,
    onSelect: function (dateText, inst) {
        console.log(dateText);
        var toDaysDate = getCurrrentDate('mdy'); //function returning current date
        console.log(toDaysDate);
        //When the selected date is equal to current date 
        if (dateText == toDaysDate) {
            $(this).find('a.ui-state-active')
                   .removeClass('ui-state-highlight')
                   .find('.ui-datepicker-today a')); 
             //$(this).datepicker("refresh");
            //console.log($(this));
        }
    }
});

コンソールが表示されたらconsole.log($(this));削除されていますが、調べてもcss class(ui-state-highlight)が残っているので、解決策を提案してください。

前もって感謝します。

4

3 に答える 3

2

@Johanと@Stanoによって提案された方法は機能しますが、月を変更してから現在の月に戻るとすぐに、今日のハイライトが戻ります。このわずかな変更により、これが修正されます。

$(function() {
   $( ".datepicker" ).datepicker({    
     beforeShow: function(input, inst) {clearToday(inst)},
     onChangeMonthYear: function(year, month, inst) {clearToday(inst)}
   });

   function clearToday(inst) {
        setTimeout(function() {
            inst.dpDiv.find('a.ui-state-highlight').removeClass('ui-state-highlight');
        }, 10);
}

タイムアウトを10に減らす必要があることがわかりました。そうしないと、日のハイライトが一時的に点滅して表示されました。

于 2014-11-20T23:28:20.230 に答える
1

試す

inst.dpDiv.removeClass('ui-state-highlight');

inst.dpDiv生成されるdatepickerdivです。

http://jsfiddle.net/abhMH/2/

于 2012-10-02T12:55:07.857 に答える
0

onSelectが起動された後にCSSクラスを追加しているのだろうか。

できることの1つは、に設定されているプロパティを調べてからui-state-highlight、コードの他の場所でそれらをオーバーライドすることです。

.ui-state-highlight {
  margin: 0 !important;
}
于 2012-10-03T11:12:11.293 に答える