给出以下代码:
var inputs = element.querySelectorAll('input[type=radio]');
for (var i = 0; i < inputs.length; ++i) {
inputs[i].addEventListener('mousedown', function(e)
{
alert(1);
console.log(this.checked); // this.checked is always false here
if (!this.checked) {
some_code();
}
});
}
警告()是否可以阻止单选按钮变为活动状态?没有它就可以正常工作。
JSFiddle链接:http://jsfiddle.net/9UGZM/
答案 0 :(得分:1)
你看到这种行为是因为你绑定了mousedown
事件。在存在mouseup
或click
事件之前,该复选框不会更改状态。
由于mouseup
,click
和alert
事件未发生。删除它,你很好,或者绑定到click
或mouseup
。
答案 1 :(得分:0)
您可以使用click
事件获得完美输出。还return
你的功能试试这个
var inputs = element.querySelectorAll('input[type=radio]');
for (var i = 0; i < inputs.length; ++i) {
inputs[i].addEventListener('click', function(e)
{
console.log(this.checked); // this.checked is always false here
if (!this.checked) {
some_code();
}
return;
});
}
检查小提琴http://jsfiddle.net/9UGZM/1/
希望这有帮助