2017-04-03 122 views
1

我正在处理一个充满复选框的网页,我想检查1(让我们调用该父母)复选框,该复选框有一个功能来检查多个其他复选框(让我们称这些孩子)。直到现在,这块jquery代码已经成功:复选框,检查另一个框

$(function(){ 
    $('#1').on('change',function(){ 
    $('#5,#456,#910,#1077,#982,#759,#1234,#392,#289,#956').prop('checked',$(this).prop('checked')); 
    }); 
    $('.child').on('change',function(){ 
    $('#parent').prop('checked',$('.child:checked').length ? true: false); 
    }); 

}); 

唯一是的;我想给“子”复选框赋予功能,并在“父”复选框被选中时让它们工作,但当父复选框选中子复选框时,这些功能似乎不起作用。只有当您用光标手动检查子框时。

我希望我的问题很清楚。我通常不会在这里

张贴:)

+0

请定义你的“的意思,但功能不似乎在父复选框检查子复选框时工作“。当父母复选框被选中时,你希望发生什么?看起来你正在试图强制一个事件链,而这对我来说没有意义。 – TinkerTenorSoftwareGuy

回答

0

您可以使用如下代码$.trigger('click')以检查框,并触发与jQuery的单击事件。

试试这个:

$('#1').on('change',function(){ 
    $('#5,#456,#910,#1077,#982,#759,#1234,#392,#289,#956').trigger('click'); 
}); 

这里是一个堆栈片段,以使其更清晰:

$(function(){ 
 
    $('#parent').click(function(){ 
 
    \t $('#1, #2, #3').trigger('click'); 
 
    }); 
 
    $('#1, #2, #3').click(function(){ 
 
     console.log(this.id); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
parent: <input type="checkbox" id="parent" /> 
 

 
<br /> 
 

 
<input type="checkbox" id="1" /> 
 
<input type="checkbox" id="2" /> 
 
<input type="checkbox" id="3" />

相关问题