我试着做一个好的FadeOut,如果你点击一个链接。下面的代码非常有效。
我的问题是:如何缩短这些功能?演示:这里
$(document).ready(function () {
var newLocation = '';
$('a, .fadeLink').on('click', function(e){
e.preventDefault();
newLocation = this.href;
$('body').fadeOut(1000, changeLocation);
});
function changeLocation() {
window.location = newLocation;
}
});发布于 2018-04-06 13:17:03
您的代码看起来已经相当不错了。您可以通过使用箭头函数而不是附加函数来缩短它(并不一定更好),这样您就可以关闭链接:
$(document).ready(function () {
$('a, .fadeLink').on('click', function(e){
e.preventDefault();
$('body').fadeOut(1000, () => window.location = this.href);
});
});发布于 2018-04-06 13:24:17
您可以在关闭$(document).ready标记之前放置JavaScript代码,从而丢失<body>函数。此外,您不必在上一个作用域中定义newLocation,您可以将其传递给changeLocation函数:
$('a, .fadeLink').on('click', function(e) {
e.preventDefault();
var location = this.href;
$('body').fadeOut(1000, function() {
changeLocation(location);
});
});
function changeLocation(location) {
window.location = location;
}您还可以去掉changeLocation函数:
$('a, .fadeLink').on('click', function(e){
e.preventDefault();
var location = this.href;
$('body').fadeOut(1000, function() {
window.location = location;
});
});最后,这是一个偏好的问题。请记住,压缩代码并不总是更好的代码。
https://stackoverflow.com/questions/49693633
复制相似问题