これは機能します:
var toggler = function(most){
var open = $('#toggle_' + most + ' .minus').is(':visible');
if(open){
$('#toggle_' + most + ' .minus').hide();
$('#toggle_' + most + ' .plus').show();
}else{
$('#toggle_' + most + ' .plus').hide();
$('#toggle_' + most + ' .minus').show();
}
$('#' + most + ' ol.tlist').toggle(open);
};
$('#toggle_mostviewed').click(function(){ toggler('mostviewed'); });
$('#toggle_mostshared').click(function(){ toggler('mostshared'); });
$('#toggle_mostrecent').click(function(){ toggler('mostrecent'); });
しかし、これはしません:
var toggler = function(most){
var open = $('#toggle_' + most + ' .minus').is(':visible');
if(open){
$('#toggle_' + most + ' .minus').hide();
$('#toggle_' + most + ' .plus').show();
}else{
$('#toggle_' + most + ' .plus').hide();
$('#toggle_' + most + ' .minus').show();
}
$('#' + most + ' ol.tlist').toggle(open);
};
var t = ['mostviewed','mostshared','mostrecent'];
for(var i = 0 ; i < t.length; i++ ){
var j = t[i];
$('#toggle_' + j).click(function(){ toggler(j) });
}
for ループが次のように「置き換え」られたようなものです。
$('#toggle_mostrecent').click(function(){ toggler('mostrecent'); });
つまり、最後の繰り返しだけが重要です。