0
我一直在重写我的脚本文件几次只是缩短了,我特地相当长,它除了有两个funcitons,合并两个功能合为一体
我想合并这些运作成一个
首先与页面加载功能,这在初始化文件准备
function pageload(elements, settings) {
elements = $.extend({}, defaultelements, elements || {});
settings = $.extend({}, defaultsettings, settings || {});
if(settings.url === '') {
console.log('No soup for you!');
movePage.prototype.pagein();
} else {
$.ajax({
url: location,
data: {
json: 'get_page',
slug: settings.url
},
success: function(data) {
var html = '<article id="' + data.page.slug + '" data-info="' + data.page.slug + '" class="subpage"></article>';
if(settings.motion) return false;
else settings.motion = true;
elements.thumbs.before(html);
var container = $('.subpage');
elements.body.prepend('<div class="spinner"></div>');
$('.spinner').hide();
container.load(data.page.url).hide();
elements.thumbs.stop().animate({
'top' : '100%'
}, settings.speed, settings.easing, function() {
$('.spinner').fadeIn(259);
setTimeout(function() {
$('.spinner').fadeOut(559);
setTimeout(function() {
container.fadeIn(659);
}, 450)
setTimeout(function() {
$('.spinner').remove();
}, 200)
}, 1250);
settings.motion = false;
movePage.prototype.pagein();
});
}
});
}
}
而且还有导航JSON负载脚本
function navigation(elements, settings) {
elements = $.extend({}, defaultelements, elements || {});
settings = $.extend({}, defaultsettings, settings || {});
elements.navitem.live('click', function(event) {
event.preventDefault();
$('.current-menu-item').removeClass('current-menu-item');
$(this).parent().addClass('current-menu-item');
settings.url = $(this).html();
$.ajax({
url: location,
data: {
json: 'get_page',
slug: settings.url
},
success: function(data) {
var current = $('.subpage');
if(settings.url == 'work') {
settings.motion = false;
} else if(current.attr('id') == settings.url) {
settings.motion = false;
return;
} else {
var html = '<article id="' + data.page.slug + '" data-info="' + data.page.slug + '" class="subpage"></article>';
if(settings.motion) return false;
else settings.motion = true;
elements.thumbs.before(html);
var container = $('.subpage');
elements.body.prepend('<div class="spinner"></div>');
$('.spinner').hide();
container.load(data.page.url).hide();
elements.thumbs.stop().animate({
'top' : '100%'
}, settings.speed, settings.easing, function() {
$('.spinner').fadeIn(259);
setTimeout(function() {
$('.spinner').fadeOut(559);
setTimeout(function() {
container.fadeIn(659);
}, 450)
setTimeout(function() {
$('.spinner').remove();
}, 200)
}, 1250);
settings.motion = false;
movePage.prototype.pagein();
$('article:not(#' + data.page.slug + ')').remove();
});
}
}
});
});
}
有没有人在这里有一个解决方案,使这些功能变成一个我可以在页面加载和导航点击中调用的功能。
这两个函数正在完成这项工作,我只想将代码缩小到一个函数中,因为它们几乎完成相同的工作 – Jonas
那么难度是多少?那么 - 是不是很难弄清楚/在哪里合并两个?你是要求我们为你重写你的代码吗? –
不,我已经解决了,我只是想要一些指针 – Jonas