我们使用的 jQuery 版本是 1.10.2。
在特定屏幕上,我们使用 jQuery 获取 DOM 元素并尝试获取其 offset() 对象。有时对象可能不会显示,并且根据 jQuery 文档,在这种情况下不支持 offset()。
这一切都很好,但是,真正让我头晕目眩的是,为什么如果我尝试检查 offset() 对象是否不同于 undefined,代码总是在条件内?
我的代码(由于保密协议而简化)如下:
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
});
}
当我使用 IE 开发工具进行调试时,我在控制台上看到 button.offset() 未定义但 button.offset() != undefined 返回 true!
有谁知道为什么会发生这种情况以及我们如何最好地处理它?
谢谢你。