Skip to content

Commit

Permalink
Merge pull request knockout#964 from steveluscher/query_scrolltop_onl…
Browse files Browse the repository at this point in the history
…y_when_needed

Prevent triggering browser reflow needlessly from options binding
  • Loading branch information
mbest committed May 18, 2013
2 parents c03c5ee + 6e5158f commit 81b6e04
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/binding/defaultBindings/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ ko.bindingHandlers['options'] = {
},
'update': function (element, valueAccessor, allBindingsAccessor) {
var selectWasPreviouslyEmpty = element.length == 0;
var previousScrollTop = element.scrollTop;
var previousScrollTop = (!selectWasPreviouslyEmpty && element.multiple) ? element.scrollTop : null;

var unwrappedArray = ko.utils.unwrapObservable(valueAccessor());
var allBindings = allBindingsAccessor();
Expand Down Expand Up @@ -127,7 +127,7 @@ ko.bindingHandlers['options'] = {
// Workaround for IE bug
ko.utils.ensureSelectElementIsRenderedCorrectly(element);

if (Math.abs(previousScrollTop - element.scrollTop) > 20)
if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20)
element.scrollTop = previousScrollTop;
}
};
Expand Down

0 comments on commit 81b6e04

Please sign in to comment.