The version of jQuery we use is 1.10.2.
On a specific screen, we get a DOM element using jQuery and try to get its offset () object. Sometimes an object may not be displayed and, according to the jQuery documentation, when this case () offset is not supported.
This is good, but what really makes my head spin, why, if I try to check if the offset () object is different than undefined, is the code always included in the condition?
My code (simplified due to non-disclosure agreements) is as follows:
var isCurrent = $('.detail-current[value=\'true\']:first'); if (isCurrent != 'undefined') { var button = isCurrent.closest('.batch-item').find('.batch-item-top').find('input[name=\'edit\']'); var myOffsetTop = 0; if(button.offset() != 'undefined') myOffsetTop = button.offset().top; $('html, body').animate({ scrollTop: myOffsetTop - 50 }); }
When I debug this using IE development tools, I see on the console that button.offset () is undefined, but button.offset ()! = Undefined returns true !!
Does anyone know why this is happening and how we can better deal with it?
Thanks.
source share