Jquery点击事件不'不再显示按钮

Jquery click event doesn't show button anymore

本文关键字:不再 显示 按钮 事件 Jquery      更新时间:2023-09-26

我使用两个查询点击事件来动态添加和删除输入字段。这种方法过去非常有效,但现在突然不起作用了。我真的找不到的问题

这是代码

<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();
});

btAddd可以正常工作,但btnDl不行。当我单击添加按钮时,应该会显示删除按钮,因此添加的字段也可以删除(直到只剩下1个字段,删除按钮再次隐藏为止)。这曾经很好用,我不明白为什么它不再起作用了。

您引用的变量"newElemCheck"在您发布的代码中没有定义。要么它需要存在于全局命名空间中,要么你需要在btAdd-click函数中创建它(并分配你想要引用的任何内容)。

用于:

$(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 的未来元素