javascript - 将相似的 jQuery 函数分组

标签 javascript jquery

有没有办法将以下功能组合为一个?

$('#box_1 input:checkbox').click(function(){
var $inputs = $('#box_1 input:checkbox')
    if($(this).is(':checked')){
       $inputs.not(this).prop('disabled',true); 
    }else{
       $inputs.prop('disabled',false);
    }
});
$('#box_2 input:checkbox').click(function(){
var $inputs = $('#box_2 input:checkbox')
    if($(this).is(':checked')){
       $inputs.not(this).prop('disabled',true); 
    }else{
       $inputs.prop('disabled',false);
    }
});

还有更多的 box_id。如果有一个比编写 2 公里代码更简单的解决方案就好了

提前非常感谢您的帮助

最佳答案

首先对所有外框进行循环

$('[id^=box_]').each(function(){    
   var $inputs=$(this).find(':checkbox').change(function(){
        $inputs.not(this).prop('disabled', this.checked);
   });
});

ID 作为属性选择器有点难看,更喜欢使用公共(public)类

关于javascript - 将相似的 jQuery 函数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24744213/

相关文章:

java - 如何在 radio.setLabel ("Phone Number"+cont.getPhone) 中为文本的某些部分设置颜色;

javascript - 测试 JavaScript 数组中是否存在 JSON 值

javascript - 修改textarea时如何在div中获取输出?

javascript - Angular 位置路径不随按键而改变

javascript - JSON 字符串中出现意外的空键值

javascript - 在添加新星级之前重置 JQuery 星级

jquery - 设置新元素的位置,同时悬停元素

javascript - 如何在 jQuery asp.net 中替换

javascript - jquery draggable 在将 div 设置为 "position: static"后停止工作

jquery - 将图标作为变量或 HTML 绑定(bind)附加到 Controller 中