2013-02-10 323 views
-1

我在此之前发现了许多问题的解决方案,但仍无法找到有关此问题的答案。我有一个容器,我用jQuery动态添加了其他元素。在里面添加div的我有一个按钮,所以我想当我点击该按钮和要删除的按钮。这是我到目前为止尝试没有成功。

HTML

<div id="menuContainer"> 
<ul id="menu"> 
    <li><a href="#" id="addColumn">add Element (max 5)</a></li> 
    <li><a href="#" id="addCard">---</a></li> 
    <li><a href="#" id="delColumn">---</a></li> 
    <li><a href="#" id="delCard">---</a></li> 
    <li><a href="#" id="tblReset">---</a></li> 
</ul> 
</div> 
<div id="columns" style="width: 1000px;"></div> 

的jQuery:

$(function() { 
var columns = $('.column').size(); 

$('a#addColumn').click(function() { 
    if (columns < 5) {     
    var columnName = prompt('Внесете назив за колоната: '); 
    var temp = columns + 1; 
    $('<div class="column">' + columnName + '<button id="' + temp + '" style="float:right;" class="btnRemoveColumn">X</button></div>').appendTo('div#columns'); 
    columns++; 
} 
else { 
    alert("Имате максимален број на колони во таблата"); 
} 
}); 

$(".btnRemoveColumn").click(function(){ 
    $(this).parent().remove(); 
});    
}); 

所有与CSS可以在外部网站小提琴受审所以怎么看都(不)工作。 Link here

+1

您正试图将事件处理程序绑定到尚不存在的元素。这是行不通的。 – 2013-02-10 12:38:53

+0

你能用英语发出警报吗? =) – 2013-02-10 12:40:29

+0

第一个提示表示“输入列的名称:”并且提示表示“您创建了最大列数”。 – al1en 2013-02-10 19:38:41

回答

0
$(document).on("click", ".btnRemoveColumn", function() { 

对于动态元素,应该委派事件。

+1

@RoryMcCrossan现在看到它;)我忘了 – 2013-02-10 12:40:21

+0

yay谢谢:D我不是很熟悉jQuery,为什么我堆栈感谢很多工作 – al1en 2013-02-10 12:43:03

+0

@ user2058726在发布问题之前,您必须更喜欢语言文档。也许它已经解决了你的问题。 – 2013-02-10 12:44:55