为什么'jquery animate callBack函数在其他函数中不起作用

时间:2015-08-07 16:24:42

标签: javascript jquery

我目前刚接触javascript和jquery, 我试图动画页面过渡动画,就像你在我添加的代码中看到的那样。一切都按预期工作,直到'openNavPages()'函数内的'jquery.animate'中的回调函数激活。 如果有人会向我解释我做错了什么,我将不胜感激。 p.s:我已经找到了类似的问题,但我找不到给出解决方案的答案。

function login(user, pass) {
    if(localStorage.getItem('username').indexOf(user) >= 0  ) {
        alert('hey');
    }
}

2 个答案:

答案 0 :(得分:1)

您已使用page参数声明了内部回调函数。 jQuery在调用它时不会将任何参数传递给该函数,因此该参数不会被设置。由于它在那里,并且它具有相同的名称,因此您的内部函数使用此未定义的变量而不是外部范围中的变量。

要解决此问题,只需删除此参数:

function openNavPages(url){
    var page = url;
    $('#main').animate({opacity: '0'},800,function(){
        window.location.href = page;
    });
}

你可以完全取消page变量,只需直接使用外部函数的url参数:

function openNavPages(url){
    $('#main').animate({opacity: '0'},800,function(){
        window.location.href = url;
    });
}

答案 1 :(得分:0)

行。非常尴尬我忘记了这里的$符号:('#main')。animate({opacity:'0'},800,function() 花了我一个小时的时间才发现......必须要睡一觉( - :