Javascript Jquery单击事件不发生';不再显示按钮

Javascript Jquery单击事件不发生';不再显示按钮,javascript,jquery,dynamic,input,Javascript,Jquery,Dynamic,Input,我使用两个查询单击事件来动态添加和删除输入字段。这以前工作得很好,现在突然不行了。我真的找不到问题 这是密码 <div> <input type="image" id="btnAdd" src="~/Images/button_add.png" /> <input type="image" id="btnDel" src="~/Images/button_remove.png"/> </div> Jquery

我使用两个查询单击事件来动态添加和删除输入字段。这以前工作得很好,现在突然不行了。我真的找不到问题

这是密码

<div>
        <input type="image" id="btnAdd" src="~/Images/button_add.png" />
        <input type="image" id="btnDel" src="~/Images/button_remove.png"/>
</div>

Jquery

$(document).ready(function () {
    $aantal = 0;
    $('#btnAdd').click(function () {
        var num = $('.clonedInput').length; 
        var newNum = new Number(num + 1);      

        var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);

        newElem.children(':eq(0)').children(':eq(0)').attr('id', 'check' + newNum).attr('name', 'check' + newNum).attr('checked', false).val('');
        newElem.children(':eq(0)').children(':eq(2)').attr('id', 'extra' + newNum).attr('name', 'extra' + newNum).css({ "background-color": "white" }).val('');
        newElem.children(':eq(1)').children(':eq(0)').attr('id', 'checkVerplicht' + newNum).attr('name', 'checkVerplicht' + newNum).attr('checked', false).val('');

        if (newNum <= 6) {
            $('#input' + num).after(newElem);
            $('#inputCheck' + num).after(newElemCheck);
        }

        $('#btnDel').attr('disabled', false);
        $('#btnDel').show();
    });

    $('#btnDel').click(function () {
        var num = $('.clonedInput').length; 
        var priceNum = $('.clonedInput').length;
        $('#input' + num).remove();     
        $('#inputCheck' + num).remove();

        $('#btnAdd').attr('disabled', false);

        if (num - 1 == 1) {
            $('#btnDel').attr('disabled', true);
            $('#btnDel').hide();
        }
    });

    $('#btnDel').attr('disabled', true);
    $('#btnDel').hide();

});
$(文档).ready(函数(){
$aantal=0;
$('#btnAdd')。单击(函数(){
var num=$('.clonedInput').length;
var newNum=新的数字(num+1);
var newElem=$('#input'+num).clone().attr('id','input'+newNum);
newElem.children(':eq(0)')。children(':eq(0)')。attr('id','check'+newNum)。attr('name','check'+newNum)。attr('checked',false)。val('');
newElem.children(':eq(0)')。children(':eq(2)')。attr('id','extra'+newNum)。attr('name','extra'+newNum)。css({“背景色”:“white”})。val('');
newElem.children(':eq(1)')。children(':eq(0)')。attr('id','checkVerplicht'+newNum)。attr('name','checkVerplicht'+newNum)。attr('checked',false)。val('');
如果(newNum用于:

$(document).on('click','#btnDel',function () {
        var num = $('.clonedInput').length; 
        var priceNum = $('.clonedInput').length;
        $('#input' + num).remove();     
        $('#inputCheck' + num).remove();

        $('#btnAdd').attr('disabled', false);

        if (num - 1 == 1) {
            $('#btnDel').attr('disabled', true);
            $('#btnDel').hide();
        }
    });

然后使用.on()方法将单击事件委托给添加到DOM中的未来元素。您正在引用的变量“newElemCheck”未在发布的代码中定义。该变量需要存在于全局命名空间中,或者需要创建它(并分配您想要引用的任何内容)在btnAdd单击函数中。

我得到了
未捕获引用错误:在
$('#inputCheck'+num)行中未定义
。在(newElemCheck);
之后。查看控制台。顺便说一句,这与说
$('.\btnDel')相同。单击(函数(){..}
。委托的正确语法是
$(文档)。on('click','btnDel',function(){})
。您可以在
$(document)
的位置使用任何静态父选择器。Mritunjay是正确的。.click()函数只是.on('click',…)的别名。基本上是简写的,但它完全有效。谢谢,我忘记删除了对“newElemCheck”的引用。