删除当前元素jquery手风琴

时间:2012-08-24 09:52:46

标签: jquery accordion element

我有“dinamic”手风琴。点击“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 id="deleteBtn" class="deleteBtn"><img src="images/del.png"></div>

                        </div>

                    </div>

JS

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

        $('#accordion').append('<div id="aE' + count + '"><div id="aT' + count + '" class="aT_val"><h3></h3></div><div id="aC' + count + '" class="aC_val"><p></p></div><div id="deleteBtn' + count + '" class="deleteBtn"><img src="images/delete-button.png"></div></div>'); });

$('#deleteBtn' + count).click(function() {
        $('#aE' + count).remove();
    });

但是“deleteBtn”不会删除元素“aE”。怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

'#aE' + count正在评估点击,而不是在创建函数时,因此它将是count的最后一个使用值,而不是按钮创建时的值。

答案 1 :(得分:0)

正在从父作用域的差异上下文中评估#deleteBtn的onclick回调。

$('#deleteBtn' + count).click(function() {
    // this will always return a fixed number
    $('#aE' + count).remove();
});

试试这个

$('#deleteBtn' + count).click(function() {
    // this will return a correct id
    var cnt =  this.id.replace('deleteBtn', '');
    $('#aE' + cnt ).remove();
});