這可能是一個愚蠢的問題,但我有一個問題,不與代碼不工作 - 這是相當的代碼太長...jQuery的:更短的代碼(如果與VAR)
一切工作正常,但例如有沒有辦法縮短if/else? 或者是否有可能跟蹤4個不同的var但用更短的代碼?
var transitionState_N = '-';
var transitionState_X = '-';
var transitionState_Y = '-';
var transitionState_Z= '-';
// carousel 4way
function carousel_4way_N (n, el, m) {
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
if (transitionState_N == '-')
{
transitionState_N = '+';
}
else
{
transitionState_N = '-';
}
$(carousel_reset).hide();
$(carousel).transition(
{y: m + '=10',delay:200}
);
};
function carousel_4way_X (n, el, m) {
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
if (transitionState_X == '-')
{
transitionState_X = '+';
}
else
{
transitionState_X = '-';
}
$(carousel_reset).hide();
$(carousel).transition(
{y: m + '=10',delay:200}
);
};
function carousel_4way_Y (n, el, m) {
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
if (transitionState_Y == '-')
{
transitionState_Y = '+';
}
else
{
transitionState_Y = '-';
}
$(carousel_reset).hide();
$(carousel).transition(
{y: m + '=10',delay:200}
);
};
function carousel_4way_Z (n, el, m) {
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
if (transitionState_Z == '-')
{
transitionState_Z = '+';
}
else
{
transitionState_Z = '-';
}
$(carousel_reset).hide();
$(carousel).transition(
{y: m + '=10',delay:200}
);
};
$('#carousel-4way-nav-1').click(function(event){
$(carousel_reset_nav).not(this).transition(
{y:0});
return carousel_4way_N(1, this, (transitionState == '-') ? '+' : '-');
event.preventDefault();
});
$('#carousel-4way-nav-2').click(function(event){
$(carousel_reset_nav).not(this).transition(
{y:0});
return carousel_4way_X(2, this, (transitionState == '-') ? '+' : '-');
event.preventDefault();
});
$('#carousel-4way-nav-3').click(function(event){
$(carousel_reset_nav).not(this).transition(
{y:0});
return carousel_4way_Y(3, this, (transitionState == '-') ? '+' : '-');
event.preventDefault();
});
$('#carousel-4way-nav-4').click(function(event){
$(carousel_reset_nav).not(this).transition(
{y:0});
return carousel_4way_Z(4, this, (transitionState == '-') ? '+' : '-');
event.preventDefault();
});
你應該張貼在http這個問題: //codereview.stackexchange.com。 – kojiro 2013-02-12 20:46:18
通常,如果我有這樣的代碼,我會查找實質上相同的部分,並將它們放入函數中,以便代碼只存在一次。 – Leeish 2013-02-12 20:47:14
'event.preventDefault()'是死代碼(它在'return'之後)。此外,還有很多未使用的變量 – Alexander 2013-02-12 20:52:42