したがって、fieldset
paneldiv
と「生成されたコンテンツ」の 2 つのセクションがありdiv
ます。あるセクションからの変更時に要素を非表示にし、別のセクションでそれらを再表示することにより、要素をある要素から別の要素に「移動」しています。.abstract
classといくつかの要素がすべてclass を持つ特定のセクション「Abstract」の場合、oneseven
非表示の数に基づいてセクションの幅属性を変更するにはどうすればよいですか?
これが私のコードです:
// 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%
orなどに入力または変更することで、コンソールでこれを実現できます20%
が、JS セクションで取得することはできません。
私が試してみました:
- parseInt() を使用して int に型キャストする
Number
JS(現在のコード)を使用するように変更する- コンソールで実際に幅のあるすべてを数値形式で入力すると、機能します
css 属性の Jquery セレクターの 2 番目のパラメーターのどこかにあると思います。どうすれば修正できますか? ノート
この問題を解決するために変数がグローバルである必要があるかどうかわからないため、varshidden
とtwo があります。width
私はそれを機能させようとしています。その後、トラブルシューティングを行い、必要なスコープを確認できます。