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如果条件不正确,当控件被选中时,您将显示从选中到未选中的更改