首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery切换问题

jquery切换问题
EN

Stack Overflow用户
提问于 2010-12-22 02:48:43
回答 2查看 327关注 0票数 0

我正在尝试创建一个主切换函数,它将折叠/展开所有的迷你切换。我的迷你切换功能是:

代码语言:javascript
运行
复制
$('.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'});
});

最重要的是:

代码语言:javascript
运行
复制
    <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>

我正在使用coldfusion。master函数遍历1到X,并创建类似于:

代码语言:javascript
运行
复制
 $('#collapseObj-1').hide();
 $('#collapseObj-2').hide();
 $('#collapseObj-1').hide();

我的问题是,当我点击主控开关时,我必须双击迷你开关才能打开折叠的div。有没有一种方法可以将切换(偶数,奇数)更改为切换(奇数,偶数)?谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-01-05 06:16:37

这似乎适用于onclick操作:

代码语言:javascript
运行
复制
   if (!$('#collapseObj-1').is(':hidden')) {
        $('#collapseObj-1').hide();
        $('#collapseImg-1').attr({src:'images/collapse_tcat.gif'});
     } else {
        $('#collapseObj-1').show();     
        $('#collapseImg-1').attr({src:'images/collapse_tcat_collapsed.gif'});
     }
票数 0
EN

Stack Overflow用户

发布于 2010-12-22 15:26:09

首先,jQuery.toggle实际上切换了可见性。您似乎将其视为具有onShow和onHide参数的函数,这是错误的。参见http://api.jquery.com/toggle/。按照您编写它的方式,您有两个函数作为参数,但toggle接受其中一个

函数回调boolean showOrHide

  • int持续时间,函数回调

  • int持续时间,字符串缓动,函数回调

显然,您对.toggle()的使用是错误的。如果你想在某个事件发生时改变可见性,你可以编写一个函数,根据当前的可见性显示/隐藏一个小开关。我看不到#togStat做了什么,但我把它藏起来了。

代码语言:javascript
运行
复制
var togStat = $('#togStat');

function miniToggle(id) {
    var elem = $('#collapseObj-' + id);
    if (elem.is(':visible')) {
        togStat.val(1);
        elem.hide();
        $('#collapseImg-' + id).attr({src: 'images/collapse_tcat_collapsed.gif'});
    } else {
        togStat.val(0);
        elem.show();
        $('#collapseImg-' + id).attr({src: 'images/collapse_tcat.gif'});
    }
}

您可以像这样调用元素编号(如示例中的元素编号):

代码语言:javascript
运行
复制
miniToggle(1);

我希望这对你有帮助。如果没有,你可能想要发布一个示例页面,这样我们就可以检查实际的代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4502799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档