更改事件

时间:2017-12-27 10:53:33

标签: jquery events checkbox prop

我需要对从另一个复选框中选中的复选框执行一些操作。但它不起作用。为什么?简单的例子:



$('.tmp').click(function(){
  $('.quest:not(:checked)').prop('checked', true);  
});

$('.quest').change(function(){
  console.log(this);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="" id="" class="tmp"> Click me to see some magic... or not(
<br>

<input type="checkbox" name="" id="" class="quest">1
<input type="checkbox" name="" id="" class="quest">2
<input type="checkbox" name="" id="" class="quest">3
<input type="checkbox" name="" id="" class="quest">4
<input type="checkbox" name="" id="" class="quest">5
<input type="checkbox" name="" id="" class="quest">6
<input type="checkbox" name="" id="" class="quest">7
<input type="checkbox" name="" id="" class="quest">8
<input type="checkbox" name="" id="" class="quest">9
<input type="checkbox" name="" id="" class="quest">10
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

您需要使用change方法手动触发trigger事件,例如:

$('.quest:not(:checked)')
.prop('checked', true) // updating prop but the change event is not fired
.trigger('change'); // this line will trigger the change event on .quest

答案 1 :(得分:0)

您需要根据添加复选框属性检查是否选中.tmp

$('.tmp').click(function(){
    if($(this).is(':checked')){
        $('.quest').prop('checked', true);
    } else {
        $('.quest').prop('checked', false);
    }
});

答案 2 :(得分:0)

$(document).ready(function () {
    $('.tmp').click(function () {
        $('.quest:not(:checked)').prop('checked', true);
    });
   $('.quest').change(function(){
   console.log(this);
   });
});