显式 .trigger("click") 未设置为真 jquery

Explicit .trigger("click") is not setting checked to true jquery

在我的 js 文件中,当 "click" 事件发生在复选框上时会触发一个函数,并在单击时检查哪些值是 "checked" 并选择这些值。 我正在点击像 :: $('#id').trigger("click"); or $('#id').click() 这样的代码,在这种情况下,调用 "click" 上触发的函数,但是当它检查 if($('#id').checked) 时,这个 returns false ,并且永远不会调用 "if-body"。

为什么当我触发对复选框的点击时,该元素的 checked 没有设置为 true?

因为$('#id')没有checked属性。所以 $('#id').checkedundefined。您可以看到,即使单击复选框本身控制台 undefined

$('#id').on('click', function() {
  console.log($('#id').checked);
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />

有一些方法可以检查复选框是否被选中。

$('#id').on('click', function() {
  console.log(
    $('#id').is(':checked'),
    $('#id').get(0).checked,
    $('#id').prop('checked')
  );
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />

还有按钮

$('#id').on('click', function() {
  if ($('#id').is(':checked')) {
    console.log('checked!!')
  }
});

$('button').on('click', function() {
  $('input').trigger('click');
})
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />
<button>trigger check</button>