Javascript Jquery触发器复选框:与单击事件关联的函数在设置选中属性之前发生

Javascript Jquery触发器复选框:与单击事件关联的函数在设置选中属性之前发生,javascript,jquery,triggers,checkbox,Javascript,Jquery,Triggers,Checkbox,我正在实现一个“账单地址与地址相同”类型的函数,当选中复选框时,该函数将根据其他字段填充字段。工作完美 单击事件的函数 if ($(this).attr('checked')) { // copy address fields to billing fields } else{ // clear fields } 现在我使用一个事件(jquery热键插件)来自动填充表单中的所有字段,这样我就可以轻松快速地演示和测试表单。而不是欺骗

我正在实现一个“账单地址与地址相同”类型的函数,当选中复选框时,该函数将根据其他字段填充字段。工作完美

单击事件的函数

    if ($(this).attr('checked')) {
        // copy address fields to billing fields
    }
    else{
        // clear fields
    }
现在我使用一个事件(jquery热键插件)来自动填充表单中的所有字段,这样我就可以轻松快速地演示和测试表单。而不是欺骗和填写帐单字段作为地址字段,我想使用

$("#CheckboxForAutofillId").trigger('click'); 
这在我第一次触发事件时不起作用,因为在上面的函数中称为它检查checked的属性,但是触发器('click')显然在更改属性之前调用事件

这意味着要正确模拟它,我必须这样做

$("#CheckboxForAutofillId").attr("checked", "checked"); // sets checked
$("#CheckboxForAutofillId").trigger('click');           // fires event then 'unchecks'
$("#CheckboxForAutofillId").attr("checked", "checked"); // rechecks
阅读触发器的jquery页面时,我没有注意到上面提到的这一点,我也没有费心去挖掘源代码以了解实际发生的情况,但在我看来,理想情况下,触发器事件应该在触发事件本身之前设置“checked”属性,因为这是一个更好的模拟检查复选框的人

我错过什么了吗

应该使用change()而不是click()


总是很高兴看到js/jquery混合+1的正确使用
$("#CheckboxForAutofillId").change(function()
{
    if(this.checked) ...
});