Bug Tracker

Ticket #2536: ui.datepicker.js.diff

File ui.datepicker.js.diff, 1.8 KB (added by nic, 12 years ago)
  • ui.datepicker.js

     
    533533                        document.body.clientWidth;
    534534                var browserHeight = window.innerHeight || document.documentElement.clientHeight ||
    535535                        document.body.clientHeight;
     536
     537                var _nextNode = $.datepicker._lastInput.parentNode;
     538                var _parentsScrollLeft = 0;
     539                var _parentsScrollTop = 0;
     540                while(_nextNode.parentNode){
     541                        _parentsScrollLeft += parseInt("0" + _nextNode.scrollLeft, 10);
     542                        _parentsScrollTop += parseInt("0" + _nextNode.scrollTop, 10);
     543                        _nextNode = _nextNode.parentNode;
     544                }
    536545                var scrollX = (isFixed ? 0 : document.documentElement.scrollLeft || document.body.scrollLeft);
    537546                var scrollY = (isFixed ? 0 : document.documentElement.scrollTop || document.body.scrollTop);
    538547                // reposition date picker horizontally if outside the browser window
     
    541550                                (browserWidth + scrollX)) {
    542551                        inst._datepickerDiv.css('left', Math.max(scrollX,
    543552                                pos[0] + (inst._input ? $(inst._input[0]).width() : null) - inst._datepickerDiv.width() -
    544                                 (isFixed && $.browser.opera ? document.documentElement.scrollLeft : 0)) + 'px');
     553                                (isFixed && $.browser.opera ? document.documentElement.scrollLeft : 0)) - _parentsScrollLeft + 'px');
    545554                }
    546555                // reposition date picker vertically if outside the browser window
    547556                if ((inst._datepickerDiv.offset().top + inst._datepickerDiv.height() -
     
    549558                                (browserHeight + scrollY) ) {
    550559                        inst._datepickerDiv.css('top', Math.max(scrollY,
    551560                                pos[1] - (this._inDialog ? 0 : inst._datepickerDiv.height()) -
    552                                 (isFixed && $.browser.opera ? document.documentElement.scrollTop : 0)) + 'px');
     561                                (isFixed && $.browser.opera ? document.documentElement.scrollTop : 0)) - _parentsScrollTop + 'px');
    553562                }
    554563        },
    555564