600を超えるフォームをMVC形式(php Codeigniter)でレンダリングしています。これらの各フォームには、「その他のオプション」というラベルの付いたボタンがあります。このボタンをクリックすると、同じ親要素にある非表示のdivが切り替えられ、より多くの入力フィールドとデータが表示されます。問題は、コンソールで兄弟の切り替えが速いことですが、実際のボタンをクリックすると、トリガーに非常に時間がかかります。
idを使用することをお勧めしますが、これほど多くのdiv要素を使用する場合は少し実用的ではありません。
これが私のjsファイルです
jQuery(document.ready(function(){
jQuery("form >button[name='more_data'].meta_button").click( function(){
jQuery(this).siblings("div.meta").toggle("fast");
});
});
これが構造です(これらのdivは650あり、今後さらに増える予定です)
<div>
<li id="bCIya8DZyr4idseJe5cbLA" class="even">
<form action="url" method="post" accept-charset="utf-8">
<div class="space_name"></div>
<button name="more_data" type="button" class="meta_button">More Options</button>
<input type="submit" name="Submit" value="Submit">
<div class="meta" style="overflow: hidden; display: block;">
<div class="meta_block">Set Estimates:
<div class="input_estimate">1:
<input type="number" name="estimate_1" value="" id="estimate_1" class="estimate">
</div>
<div class="input_estimate">2:
<input type="number" name="estimate_2" value="" id="estimate_2" class="estimate">
</div>
<div class="input_estimate">3:
<input type="number" name="estimate_3" value="" id="estimate_3" class="estimate">
</div>
</div>
</div>
</form>
</li>
</div>
注:私はjQuery1.7.2を実行しています