0

我有一个页面,它有一个表单和一个生成的内容区域,它们都通过复选框隐藏了部分和子部分。(复选框隐藏在页面上,但不在小提琴上显示复选框的“已选中”状态)

是小提琴。它可能看起来很多,但坚持下去,它真的不是。我有一个应该很简单的问题,让我告诉你问题出在哪里。

我正在尝试向页面添加功能,以便当用户从左侧窗格中取消选择某个部分的所有子部分时,该部分作为一个整体隐藏在左侧,而右侧表单让您知道整个部分被隐藏(小提琴中的红色文本),但不允许更改小节以保持持久性。我可以通过在左侧窗格中单击它们来隐藏所有子部分,左侧部分消失,右侧子部分隐藏自己,通知您它的右侧标题隐藏在左侧。问题出在单击右侧标题以取消隐藏左侧部分时,子部分不再可见或“重置”。

这是处理检查是否所有小节都隐藏的代码:

if (($('fieldset.abstract > div > input:checkbox:checked').length+1) == 7){
    //Left Side
    $('.block > .abstract > .superseven > section input').each(function(){
        $(this).prop('checked' , true);
    });
    $('.block > .abstract > .superseven > section').eq(index).hide();  
    $('.block > .abstract').hide("slow");
    //Right Side
    $('fieldset.abstract label:first').toggleClass('hidden');
    $('fieldset.abstract > div > input').each(function(){
            $(this).prop('checked' , false);
    });
    $('fieldset.abstract > div > label').each(function(){
            $(this).hide("slow");
    });

仅在隐藏所有小节之后,如何将复选框“重置”为页面加载?应该是,一旦用户单击右侧部分标题以将部分带回左侧,所有子部分都可见。

  • 如果我在单击右侧部分标题时应用常规条件(类似于标记为 JS 的下部//Toggle Section completely),则从仅隐藏几个子部分然后隐藏整个部分时,它将不会保持持久性。
  • 我在想,如果我跟踪状态变量,但不知道 Jquery 中的变量作用域(我认为它必须是全局的,我认为这不是好的做法),这可能是可能的,
  • 或者 Jquery 的整个部分可以包装在一个自调用函数中,如下所示:

    (函数名() { ... })();

我可以使用任何其他编程方法吗?

很抱歉,对于 js/jquery 的新手来说,这很深入,我希望小提琴会有所帮助,而不是伤害。

澄清应该发生的事情:

  • 单击所有左侧小节,它们就会消失
  • 右侧的小节(仅限标签,因为所有复选框在实时页面中都不可见)应该消失
  • 右侧部分标题应变为红色
  • 单击右侧部分标题
  • 左侧部分应该出现(所有这一切都在这里工作,这是它中断的地方)并且左侧的所有子部分都应该可见,就像它被重置一样(与页面加载时相同,但仅适用于此特定部分,因为这些部分有多个),因为用户隐藏了所有子部分,所以整个部分都被隐藏了,现在用户想要左侧部分,并且所有子部分都应该可见。

笔记:

当前工作功能:

  • 从标题中隐藏整个部分
  • 隐藏除一个小节之外的所有小节
  • 隐藏小节,然后选择隐藏整个部分,并在取消隐藏整个部分时保持持久性
4

1 回答 1

1

对于初始块的问题,我认为是宽度问题,尝试更改一些宽度,尝试 14.28 而不是 14.326647564469914,(我通过 iPad 响应并且此设备正常工作)

总结评论,这段代码:重置初始案例并设置子部分的正确宽度

if(!$('.block > .abstract').is(':visible')) {
      $('fieldset.abstract #abstract_all').prop('checked' , false);
      $('.superseven ').children().show();
      var width = ((1/7)*100);
      $('.superseven ').find('div').css("width", width + '%')
于 2012-07-12T19:33:46.570 回答