2012-06-30 42 views
1

所以我有两个部分,一个fieldset面板div,和一个“生成的内容”div。通过隐藏他们从一个部分的变化并将他们隐藏在另一个部分中,我将这些元素从一个“移动”到另一个。对于具有类.abstract和几个元素都具有类oneseven的“抽象”部分,如何根据隐藏的部分来更改部分的宽度属性?通过JQuery选择器设置CSS class属性:hidden count

这里是我的代码:

// Abstract 
//hide initially 
    $('fieldset.abstract label').hide(); 
//individual Abstract elements Toggle Buttons 
    //Currently on, turning Off 
     $('.block > .abstract > .superseven > section > .oneseven > input').on('change', function() { 
      var hidden = 0; 
      var width = Number((1/(7-hidden))*100); 
      if (this.checked) { 
      } else { 
       var hidden = ($('.block > .abstract > .superseven > section > :hidden').length + 1); 
       var width = Number((1/(7-hidden))*100); 
       console.log(hidden); 
       console.log('"' + Number(width) + '%"'); 
/*issue here*/  $('.oneseven').css("width", '"' + Number(width) + '%"'); 
       var index = $(this).closest('section').prevAll('section').length; 
       $('.block > .abstract > .superseven > section').eq(index).hide("slow"); 
       $('fieldset.abstract > label').eq(index+1).show("slow"); 
       $('fieldset.abstract > input').eq(index+1).prop('checked' , true); 
      } 
     }); 
    //Currently off, turning On 
     $('fieldset.abstract > input').on('change', function() { 
      var hidden = 0; 
      var width = Number((1/(7-hidden))*100); 
      if (this.checked) { 
      } else { 
       var hidden = ($('.block > .abstract > .superseven > section > :hidden').length - 1); 
       var width = Number((1/(7-hidden))*100); 
       console.log(hidden); 
       console.log('"' + Number(width) + '%"'); 
/*and here*/  $('.oneseven').css("width", '"' + Number(width) + '%"'); 
       var index = $(this).prevAll('input').length; 
       $('.block > .abstract > .superseven > section').eq(index-1).show("slow"); 
       $('.block > .abstract > .superseven > section > .oneseven > input').eq(index-1).prop('checked' , true); 
       $('fieldset.abstract > label').eq(index).hide("slow"); 
      } 
     }); 

我可以通过键入$('.oneseven').css("width", "33.33%"); 或改变数值来25%20%等..米,但得到它的JS部分ISN在控制台中做到这一点”不工作。

我曾尝试:使用parseInt函数

  • 型铸造成一个int()
  • 使用JS(当前代码)
  • 进入一切在数格式实际上宽度使之向Number在控制台,它的工作原理

我认为它是在CSS属性JQuery选择器的第二个参数的某处。我如何解决它?

我有瓦尔hiddenwidth两次,因为我不知道,如果他们需要的是全球还是不来解决这个问题。我试图让它工作,然后我可以排除故障并查看需要的范围。

+2

你是否试图摆脱嵌套的引号?我认为'.css(“width”,width +“%”)'应该可以工作。 – pimvdb

+0

你是对的,谢谢!最后一行代码是'$('。oneseven').css(“width”,(width)+“%”);'不需要''Number()'。 –

回答

2

是,@pimvdb是正确的,由于某种原因,不需要嵌套的报价,所以最后一行代码是 $('.oneseven').css("width", (width) + "%");

并且不需要​​型铸造/转换。

+0

'Number'只在需要时才需要。一个你想要转换的字符串。如果你正在用'*'或'/'进行计算,那么你肯定会得到一个数字。 – pimvdb