Javascript 使用jQuery显示/隐藏复选框事件上的字段

Javascript 使用jQuery显示/隐藏复选框事件上的字段,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我试图用它作为指导,但我不确定我下面的代码有什么错。如果有人能帮忙,我将不胜感激 一点背景:我使用一个名为Confiforms的附加组件来更改HTML的能力有限。我可以使用Confiforms隐藏/显示字段,但我通常发现,当我以这种方式配置字段时,它会影响性能 HTML: 谢谢 使用带有箭头函数的jquery时应该非常小心: $('input[type=“checkbox”]”)。更改(函数(){ 如果($(this).is(':checked')){ $(this).closest('tr'

我试图用它作为指导,但我不确定我下面的代码有什么错。如果有人能帮忙,我将不胜感激

一点背景:我使用一个名为Confiforms的附加组件来更改HTML的能力有限。我可以使用Confiforms隐藏/显示字段,但我通常发现,当我以这种方式配置字段时,它会影响性能

HTML:


谢谢

使用带有箭头函数的jquery时应该非常小心:

$('input[type=“checkbox”]”)。更改(函数(){
如果($(this).is(':checked')){
$(this).closest('tr').next('tr').show();
}否则{
$(this).closest('tr').next('tr').hide();
}
});

客户影响?


只是一种预感,但如果该表是动态加载的,您可能需要执行事件委派
$('body')。在('change','input[type=“checkbox”],()=>{})所以是的,在加载表之后,我肯定要加载该函数。原来问题出在箭头功能上。箭头函数保留了
这个
,因此它不再是我将事件附加到的相关元素(使用@Dekel这个词)。将它改为
function(){…}
而不是
()=>{…}
解决了我的问题。哇,我太习惯使用箭头函数了,以至于我完全忘记了保存它。我把它改为function(),它工作得很好。谢谢你,德克尔!
<tr>
    <td class="label editLabel">Customer Impact?</td>
    <td>
        <p class="auto-cursor-target">
            <span class="i_holdingrow_impact">
                <span id="i_holdingrow_impact">
                    <input cf-field="impact" class="radio" type="checkbox" name="impact" id="i_impact">
                </span>
            </span>
        </p>
    </td>
</tr>
<tr>
    <td/>
    <td>
        <p>
            <span class="i_holdingrow_impactDesc">
                <span id="i_holdingrow_impactDesc">
                    <textarea cf-field="impactDesc" id="i_impactDesc" name="impactDesc" rows="4" class="textarea large-field cf_textarea"/>
                </span>
            </span>
        </p>
    </td>
</tr>
$('input[type="checkbox"]').change(() => {
    if ($(this).is(':checked')) {
        $(this).closest('tr').next('tr').show();
    }
    else {
        $(this).closest('tr').next('tr').hide();
    }
});