我需要在IE9中帮助调试滑块。它不会打开滑块,这里是javascript代码。
<script>
var $root = $('html, body');
$('a').click(function() {
var href = $.attr(this, 'href');
$root.animate({
scrollTop: $(href).offset().top
}, 500, function () {
window.location.hash = href;
});
return false;
});
// yeah let's do vanilla JS just for fun :P
var toggle = document.getElementsByClassName('toggle');
var slider = document.querySelector('.slider');
for(var i = 0; i < toggle.length; i++) {
toggle[i].addEventListener('click', toggleSlider, false);
}
function toggleSlider(){
if (slider.classList.contains('opened')) {
slider.classList.remove('opened');
slider.classList.add('closed');
} else {
slider.classList.remove('closed');
slider.classList.add('opened');
}
}
</script>
当使用IE开发工具时,IE会生成此错误“无法获取属性'top'的值:对象为null或未定义”
然后它显示错误发生的可能区域:
$root.animate({
scrollTop: $(href).offset().top
}, 500, function () {
window.location.hash = href;
});
这里有什么想法吗?
答案 0 :(得分:0)
你的问题在这一行:
var href = $.attr(this, 'href');
这不起作用,因为它试图将jquery对象的'this'属性设置为href,并且由于几个原因而无法工作。您可能想要做的是这样的事情:
var href = $(".selector").attr('href');
答案 1 :(得分:0)
尝试使用:
var href = $(this).attr('href');
而不是:
var href = $.attr(this, 'href');
在你的主播的点击处理程序中。