1

JQueryアコーディオンに問題があります。「動的」アコーディオンを作成したい(「addBtn」のクリックで新しいアイテムを追加する)、新しいアイテムが作成されますが、トグルは適用されません(最初のアイテムのみを適用)

HTML

<div id="accordion">

        <div id="aE">
                <div id="aT" class="aT_val"> 
                        <h3></h3>
                </div>
                <div id="aC" class="aC_val">
                        <p></p>
                </div>
        </div>

</div>

JS

var conTit = 'title';
var conCont = 'content';

var count = 0;

$('.aC_val').hide();

$('.aT_val').toggle(
    function() {
        $(this).next('.aC_val').show();
    },
    function() {
        $(this).next('.aC_val').hide();
    }
);

$('#addBtn').click(function() {
        count++;

        $('#accordion').append('<div id="aE' + count + '"><div id="aT' + count + '" class="aT_val"><h3>' + conTit + '</h3></div><div id="aC' + count + '" class="aC_val"><p>' + conCont + '</p></div></div>');

同僚、バグはどこにありますか?

4

2 に答える 2

0

動的に生成された要素の場合、イベントを委任する必要があります。次のon方法を使用できます。

$(document).on('click', '.aT_val', function(){
     $(this).next().toggle();
})

toggleイベントは非推奨であることに注意してください。

于 2012-08-22T09:03:28.173 に答える
0

<h3>アコーディオン関数は、後のタグを期待しませんか?

<div id="accordion"> tag

例:

<div id="accordion">
    <h3><a href="#"></a>General Variables</h3>
    <div>
    </div>
于 2012-08-22T09:12:18.513 に答える