Javascript页面转换未定义
我正在尝试将页面转换添加到我的网站。但由于某种原因,当我点击一个链接时,它会重定向到mywebsite.com/undefined 这是我正在使用的代码Javascript页面转换未定义,javascript,jquery,Javascript,Jquery,我正在尝试将页面转换添加到我的网站。但由于某种原因,当我点击一个链接时,它会重定向到mywebsite.com/undefined 这是我正在使用的代码 jQuery(document).ready(function($) { $('.menu-item').click(function(event) { event.preventDefault(); newLocation = this.href; $('.preloader').fadeIn(1000, newp
jQuery(document).ready(function($) {
$('.menu-item').click(function(event) {
event.preventDefault();
newLocation = this.href;
$('.preloader').fadeIn(1000, newpage);
});
function newpage() {
window.location = newLocation;
}
});
我不能让它工作。任何帮助都将不胜感激。这是因为newLocation
超出了范围(它仅在单击功能的范围内可用)。(见更新1。)
相反,将其传递到newPage
函数中,如下所示:
jQuery(document).ready(function($) {
$('.menu-item').click(function(event) {
event.preventDefault();
$('.preloader').fadeIn(1000, function() {
// Pass this.href into the newPage function
newPage(this.href);
});
});
function newPage(newLocation) {
window.location = newLocation;
}
});
注意事项:
- 请注意,我正在将一个函数作为第二个参数传递给
.fadeIn
函数。(请参阅。)不能只将newPage(this.href)
传递到第二个参数中,因为这将把newPage
函数的返回值(为null)传递到.fadeIn
函数中
- 此模式适用于其他jQuery函数,如
.slideUp
。下面是.slideUp
的一个实现示例:
$('.preloader').slideUp({
duration: 1000,
easing: "easeInOutQuint"
}, function() {
newpage(this.href)
});
更新1:
如注释中所述,由于newLocation
未在代码段中用var
声明,因此它应自动成为全局变量。因此,它实际上应该在newpage
函数的作用域中,而原始代码段应该实际工作。这是因为newLocation
超出了作用域(它仅在单击函数的作用域中可用)。(见更新1。)
相反,将其传递到newPage
函数中,如下所示:
jQuery(document).ready(function($) {
$('.menu-item').click(function(event) {
event.preventDefault();
$('.preloader').fadeIn(1000, function() {
// Pass this.href into the newPage function
newPage(this.href);
});
});
function newPage(newLocation) {
window.location = newLocation;
}
});
注意事项:
- 请注意,我正在将一个函数作为第二个参数传递给
.fadeIn
函数。(请参阅。)不能只将newPage(this.href)
传递到第二个参数中,因为这将把newPage
函数的返回值(为null)传递到.fadeIn
函数中
- 此模式适用于其他jQuery函数,如
.slideUp
。下面是.slideUp
的一个实现示例:
$('.preloader').slideUp({
duration: 1000,
easing: "easeInOutQuint"
}, function() {
newpage(this.href)
});
更新1:
如注释中所述,由于newLocation
未在代码段中用var
声明,因此它应自动成为全局变量。因此,它实际上应该在newpage
函数的作用域内,并且原始代码段应该实际工作。您没有将新位置传递给函数您没有将新位置传递给函数可能更好的做法是将newLocation
传递给函数以保存pollution@DarrenSweeney,固定的。谢谢您的关注。@我刚刚添加了一个示例,说明如何使用.slideUp
功能。非常感谢您的帮助!非常感谢。为什么newLocation
超出范围?它不是用var
声明的,因此它是一个全局变量,而不是局部变量。可能最好将newLocation
传递到函数中保存pollution@DarrenSweeney,修正了。谢谢您的关注。@我刚刚添加了一个示例,说明如何使用.slideUp
功能。非常感谢您的帮助!非常感谢。为什么newLocation
超出范围?它不是用var
声明的,因此它是一个全局变量,而不是局部变量。