如果在页面上找到元素,我该如何运行此代码?这个功能在我需要功能的主页上运行良好;但是,在不需要该功能的其他页面上,控制台在控制台中会产生cannot read property .top of undefined...
错误,因为我假设在页面上找不到这些元素。
$('.play').click(function( e ){
e.preventDefault();
$('html, body').animate({
scrollTop: $("#music").offset().top - (
$(window).width() < 450 ? 112 : 60
)
}, 500);
$('.play').fadeOut(function() {
$('.music-home').fadeIn('slow');
});
});
答案 0 :(得分:1)
if ($( "#music").length) {
//Element exists
}
答案 1 :(得分:0)
$('.play').click(function( e ){
e.preventDefault();
var len = $("#music").length;
if(len){
//do something
}
});
答案 2 :(得分:0)
在访问元素length
之前先查找它。
尝试下面的代码,这将适用于任何页面。因为它只有在找到#music
元素时才会起作用,否则就会失败。
$('.play').click(function( e ){
e.preventDefault();
if($("#music").length > 0)
{
$('html, body').animate({
scrollTop: $("#music").offset().top - (
$(window).width() < 450 ? 112 : 60
)
}, 500);
$('.play').fadeOut(function() {
$('.music-home').fadeIn('slow');
});
}
});