C# 按钮单击事件未触发

C# 按钮单击事件未触发,c#,jquery,asp.net-mvc,jquery-events,C#,Jquery,Asp.net Mvc,Jquery Events,我的项目是C#MVC 我有一个表,它的最后一行包含一个带有“添加”按钮的下拉列表。单击“添加”按钮后,通过JQuery将一行添加到表中。这个很好用 添加的行的一部分是一个“删除”按钮,我想使用该按钮删除该行 奇怪的是,“删除”按钮的点击事件并没有被JQuery接受。它与“添加”按钮完全相同,只是ID不同。有人知道为什么会这样吗?代码如下 $('#AddBuyCondition').click(function () { alert("abc"); var

我的项目是C#MVC

我有一个表,它的最后一行包含一个带有“添加”按钮的下拉列表。单击“添加”按钮后,通过JQuery将一行添加到表中。这个很好用

添加的行的一部分是一个“删除”按钮,我想使用该按钮删除该行

奇怪的是,“删除”按钮的点击事件并没有被JQuery接受。它与“添加”按钮完全相同,只是ID不同。有人知道为什么会这样吗?代码如下

    $('#AddBuyCondition').click(function () {
        alert("abc");
        var conditionID = +$("#BuyConditionList").val();
        var conditionText = $("#BuyConditionList").find('option:selected').text();
        $('#BCDropDownRow').before('<tr><td>' + conditionText + '</td><td><button id="RemoveBuyCondition" type="button" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-minus"></span></button></td></tr>');
    });

    $('#RemoveBuyCondition').click(function () {
        alert("rbc");
    });
$('AddBuyCondition')。单击(函数(){
警报(“abc”);
var conditionID=+$(“#BuyConditionList”).val();
var conditionText=$(“#BuyConditionList”).find('option:selected').text();
$('#bcdropdownlow')。在(''+条件文本+'')之前;
});
$(“#RemoveBuyCondition”)。单击(函数(){
警报(“rbc”);
});
您需要在此处使用,因为您的按钮已动态添加到DOM中:

事件委派允许我们将单个事件侦听器附加到 父元素,将为与选择器匹配的所有子元素激发, 无论这些孩子现在存在还是将来被添加

所以,基本上在您的情况下,事件委派将帮助您将单击事件附加到动态添加的按钮元素

此外,为了防止重复的
id
,您应该为按钮使用class而不是
id

......'</td><td><button type="button" class="RemoveBuyCondition btn btn-default btn-xs">......
按活动函数尝试

$('#AddBuyCondition').live('click',function()
{ 
  alert("abc");
});

的确谢谢你。为了澄清答案,表的名称是“BuyConditions”。我把上面的答案改为下面的,效果很好$(“#BuyConditions”)。在('click',“#RemoveBuyCondition',函数()上({alert(“rbc”);});菲利克斯有。为了澄清答案,表的名称是“BuyConditions”。我把上面的答案改为下面的,效果很好$(“#BuyConditions”)。在('click',“#RemoveBuyCondition',函数()上({alert(“rbc”);});很高兴这有帮助。顺便说一句,我已经根据您的评论更新了我的答案:-)该函数现在已被弃用。你应该避免使用它。
$('#BuyConditions').on('click', '.RemoveBuyCondition', function() {
    alert("rbc");
});
$('#AddBuyCondition').live('click',function()
{ 
  alert("abc");
});