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