我有一个主页上有id组件主页的主页.此页面在页脚,导航和其他元素中有一些动画.这些元素在所有其他页面上具有相同的名称.
当元素在#component-homepage中时,我想执行jQuery代码(js文件将包含更多,然后只包含此代码).
// This could should be on all the pages
$("nav li:last-child").addClass('last-child');
// This code should only be used when the id #component-homepage is in the body
// Homepage navigatie fadeIn + contentblok animatie
$('#content_home').hide();
$('nav').hide().fadeIn(1200, function(){
var result = $("#content_home").outerHeight();
$('#content_home_container').css({"margin-top": -Math.abs(result), "height": (result)});
$('#content_home').css({"margin-top": (result),"display":"block"}).animate({marginTop: '0px'},1000);
});
// Homepage navigatie animatie + url click event
$('nav a').click(function(event){
event.preventDefault();
var href = this.href;
$('nav').animate({
marginTop: '-635px'},
1000,
function(){
window.location = href;
});
$('footer').fadeOut(200);
});
Run Code Online (Sandbox Code Playgroud)
我尝试在这里包装代码:
$('#component-homepage').ready(function(){
// code
});
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
将代码包装在此:
if ( $('#component-homepage').length ) {
// code
}
Run Code Online (Sandbox Code Playgroud)
该.length方法返回jQuery对象中的元素数,因此只要有多个具有此ID的元素,这将转换为布尔值true,从而运行代码.
来源(S)