JQuery 用于隐藏动态滑块的动态复选框不起作用

JQuery dynamic checkbox to hide dynamic slider not working

我有一个包含滑块和复选框的表单,根据选中或未选中的复选框,我需要隐藏一个滑块。这两个元素都是由 JQuery 在对话框中创建的。

我的两行动态输入代码是:

$('#msgBox').html($('#msgBox').html() + '<div class="table-row"><div class="table-col-l">Number:</div><div class="table-col-r"><input id="lunchtbc" type="checkbox"> TBC</div></div></div>')
$('#msgBox').html($('#msgBox').html() + '<div class="table-row" id="lunchnumber"><div class="table-col-l">Number:</div><div class="table-col-r"><div id="lunchnum"></div><span id="lunchno"></span></div></div></div>')

在这段代码的下方:

$('#lunchtbc').on('click',function() {
    $('#lunchnumber').hide()
});

我不确定为什么这不起作用(我也用单选按钮设置了同样的结果)。

你应该试试delegating。所以在你的情况下它可能是:

$('body').on('click', '#lunchtbc', function(){
    $('#lunchnumber').hide()
});

之所以可行,是因为您可能在复选框不存在时尝试绑定点击。因此,通过委托它,它也可以处理动态添加的元素。

我在 JSfiddle (here) 上测试过它,它有效。