2016-08-09 2 views
0

На моей веб-странице у меня есть календарь jquery для выбранных нескольких дат. Когда я выбираю каждую дату, календарь обновляется, чтобы выделить выбранную дату. Теперь проблема в том, что каждый раз, когда я выбираю дату, страница также будет наверху страницы. Как я могу держать страницу в позиции и выбирать даты снова и снова ..?Как сохранить положение полосы прокрутки ...?

Вот мой JS

$("#datepickerr").datepicker({ 
    dateFormat: 'yy-mm-dd' , 
    dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], 
    todayHighlight: true, 
    // showButtonPanel: true, 
    beforeShowDay: function (date) { 
     if(date.getTime() >= date1 && date.getTime() <= date2){ 
      return[true,'date-range','']; 
     } 
     else{ 
      return [true, ((date.getTime() >= Math.min(prv, cur) && date.getTime() <= Math.max(prv, cur)) ? 'date-range' : '')]; 
     } 
    }, 
    onSelect: function (dateText, inst) { 
     var d1, d2; 
     prv = cur; 
     cur = (new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)).getTime(); 
     if (prv == -1 || prv == cur) { 
      prv = cur; 
      date1=date2=prv ; 
      $('#datepickerr').val(dateText); 
      $('#datepickerr').datepicker("refresh"); 
     } else { 
      d1 = $.datepicker.formatDate('yy-mm-dd', new Date(Math.min(prv,cur)), {}); 
      d2 = $.datepicker.formatDate('yy-mm-dd', new Date(Math.max(prv,cur)), {}); 
      date1=d1; 
      date=d2; 
      $('#datepickerr').val(d1+' '+d2); 
      $('#datepickerr').datepicker("refresh");     
     } 
     hideDatepicker(null); 
    } 
}); 
+0

использование работа вокруг, чтобы выделить, не обновить, например, дал каждый день в календаре специальный класс см на сегодняшний день и использовать $ .css, чтобы выделить, по-прежнему можно записать scrollTop и установить его после обновления, и это плохо. –

+0

может у меня код – iqbalpalemad

ответ

-1

общая идея

var selected = []; 
 

 
$("#datepickerr").datepicker({ 
 
    onSelect: function(dateText, inst) { 
 
    var index = selected.indexOf(dateText); 
 
    if (index !== false) { 
 
     $('.d-' + dateText).removeClass('selected'); 
 
     selected.splice(index, 1); 
 
    } else { 
 
     $('.d-' + dateText).addClass('selected'); 
 
     selected.push(dateText) 
 

 
    } 
 

 
    } 
 
});
.selected { 
 
    /* your highlight style */ 
 
}
<!-- <tag class="d-dateText"><tag class="d-dateText"><tag class="d-dateText"><tag class="d-dateText"> -->

+0

есть еще один диапазон дат, который нужно выделить перед выбором даты. И здесь я не выбираю ни одну дату, а целый ряд дней, поэтому вы можете сказать мне, как предотвратить перезагрузку. – iqbalpalemad

+0

@iqbalpalemad не использует $ ('# datepickerr ') DatePicker ("обновить"). поэтому подсветка должна выполняться по-другому (не предоставляется datepicker), и я могу предоставить только мою идею. выбор диапазона нужно больше исправить на этом, также вы можете попробовать другой дампикер, который не перезагрузится –

+0

Теперь я попробовал это после удаления строки обновления, но проблема все еще существует. Теперь я обнаружил, что проблема заключается в onselect-функции, когда я выбираю дату добавляет # с URL-адресом – iqbalpalemad

Смежные вопросы