我的jquery语法和格式化有什么问题?

时间:2015-09-17 15:02:38

标签: javascript jquery html css

这段代码有什么问题?可能很多cus我是jquery的新手。我正试图淡化页面,然后将背景淡入淡出和导航中的另一个并设置它,以便链接将页面淡出并引入新页面。我现在的代码不太正常,我认为一些语法和格式是问题所在。

$(document).ready(function() {

    $('body').fadeIn(1500);
});

$('#background').addClass('background');

setTimeout(function() {
  $('#background').addClass('background-blured');
}, 1500);

$("h1").delay(2000).animate({
    top: -50,
    opacity: 1,
  }, 700, function() {
    // Animation complete.
});


$('.link').click(function() {

    event.preventDefault();

    newLocation = this.href;

    $('body').fadeOut(500, newpage);

});

function newpage() {

    window.location = newLocation;

}

});

谢谢!

1 个答案:

答案 0 :(得分:0)

DOM完全加载后,

$(document).ready触发器。当浏览器仍在加载页面时,运行$(document).ready块之外的任何javascript。因此,如果您的$('#background')元素尚未加载到DOM,则jQuery无法向其添加'background'类。而且很可能只有部分$('。link')元素会添加click事件监听器,因为它们在javascript运行时尚未加载。这就是你应该在$(document).ready函数中嵌入这些东西的原因。

$(document).ready(function() {

    $('body').fadeIn(1500);

    $('#background').addClass('background');

    setTimeout(function() {
        $('#background').addClass('background-blured');
    }, 1500);

    $("h1").delay(2000).animate({
        top: -50,
        opacity: 1,
    }, 700, function() {
        // Animation complete.
    });

    $('.link').click(function() {
        event.preventDefault();
        newLocation = this.href;
        $('body').fadeOut(500, newpage);
    });
});

function newpage() {
    window.location = newLocation;
}

注意通过适当的缩进,您可以轻松查看$(document).ready函数内部的内容。另请注意,您不要在$(document).ready中放置像newpage()函数这样的标准函数。