Javascript 如何在选中的属性更改之前触发onclick事件?

Javascript 如何在选中的属性更改之前触发onclick事件?,javascript,javascript-events,Javascript,Javascript Events,简单的例子: <input type="checkbox" id="cb" /> document.getElementById("cb").onclick = function(){ if(this.checked){ console.log("Change from checked to unchecked"); } else { console.log("Change from unchecked to checked")

简单的例子:

<input type="checkbox" id="cb" />   

document.getElementById("cb").onclick = function(){
    if(this.checked){
        console.log("Change from checked to unchecked");
    } else {
        console.log("Change from unchecked to checked");         
    }
};  

document.getElementById(“cb”).onclick=function(){
如果(选中此项){
日志(“从选中更改为未选中”);
}否则{
日志(“从未检查更改为已检查”);
}
};  
但当我运行它时,它会给出相反的结果。
我得出的结论是,在触发
onclick
事件之前,
checked
属性会发生更改。

因此,我的问题是:如何在
选中的属性更改之前触发
onclick
事件?

您必须使用
onchange
事件而不是
onclick

更新:

您的如果条件错误,则在选中控件时,您将显示从选中更改为未选中的


<input type="checkbox" id="cb" />   

document.getElementById("cb").onchange = function(){
    if(this.checked){
        console.log("Change from unchecked to checked");
    } else {
        console.log("Change from checked to unchecked");         
    }
};
document.getElementById(“cb”).onchange=function(){ 如果(选中此项){ 日志(“从未检查更改为已检查”); }否则{ 日志(“从选中更改为未选中”); } };
它必须是onclick吗?为什么不直接使用onchange?@wong2如果条件不正确,当控件被选中时,您将显示从选中到未选中的更改