开发者问题收集

仅当在页面上找到元素时才运行函数?

2014-10-08
58

仅在页面上找到元素时才能运行此代码?此功能在需要该功能的主页上运行良好;但是,在不需要函数的其他页面上,控制台会产生 无法读取属性。在页面上。

988501886
3个回答
if ($( "#music").length) {
    //Element exists
}
Arsen Mkrtchyan
2014-10-08
$('.play').click(function( e ){
    e.preventDefault(); 
    var len = $("#music").length;
    if(len){ 
        //do something
    }
});
roullie
2014-10-08

在访问元素之前,先找到元素的 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');
      });
    }
});
Mayank Pathak
2014-10-08