我有“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”。怎么解决这个问题?
答案 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();
});