【发布时间】:2011-01-05 06:16:36
【问题描述】:
我正在尝试创建一个主切换功能,该功能将折叠/展开所有迷你切换。我的迷你切换功能是:
$('.tog').toggle(
function(){
$('#togStat').val(1);
var myID = $(this).attr("id").split('-')[1];
$('#collapseObj-'+myID).hide();
$('#collapseImg-'+myID).attr({src:'images/collapse_tcat_collapsed.gif'});
},
function(){
$('#togStat').val(0);
var myID = $(this).attr("id").split('-')[1];
$('#collapseObj-'+myID).show();
$('#collapseImg-'+myID).attr({src:'images/collapse_tcat.gif'});
});
而主人是:
<cfoutput>
$('.togAll').toggle(
function(){
<cfloop from="1" to="10" index="i">
$('##collapseObj-#i#').hide();
$('##collapseImg-#i#').attr({src:'images/collapse_tcat_collapsed.gif'});
</cfloop>
$('##collapseImg-All').attr({src:'images/expand_icon.png'});
$('##collapseImg-All').attr({title:'expand all'});
$('##collapseImg-All').attr({alt:'expand all'});
},
function(){
<cfloop from="1" to="#getMaxCatID.catID#" index="i">
$('##collapseObj-#i#').show();
$('##collapseImg-#i#').attr({src:'images/collapse_tcat.gif'});
</cfloop>
$('##collapseImg-All').attr({src:'images/collapse_icon.png'});
$('##collapseImg-All').attr({title:'collapse all'});
$('##collapseImg-All').attr({alt:'collapse all'});
});
</cfoutput>
我正在使用冷融合。 master 函数循环 1 到 X 并创建类似于:
$('#collapseObj-1').hide();
$('#collapseObj-2').hide();
$('#collapseObj-1').hide();
我的问题是当我单击主切换时,我必须双击迷你切换才能打开折叠的 div。有没有办法将 toggle(even,odd) 更改为 toggle(odd,even) ? 谢谢
【问题讨论】:
-
离题:您可以链接您的 jQuery 命令而无需重新选择节点:
$('some selector').show().attr(...);此外,您传递给attr的大多数对象都可以压缩为一个调用. -
我试过做:attr({src:'images/collapse_icon.png'},{title:'collapse all'},...);但它不喜欢它。也许我应该这样做 $('##collapseImg-All').attr({src:'images/collapse_icon.png'}).attr({title:'collapse all'}).attr({alt:'collapse all '});
-
不,他是说要做
$('#element_id').attr({key1:val1, key2:val2, key3:val3});你应该阅读jQuery basics。 -
行得通。所以,我创建了一个 tog_alt 类,它以相反的顺序隐藏/显示。我试过 $('##collapseImg-#i#').removeClass('tog').addClass('tog_alt');但这也行不通。