onchange函数只为新创建元素调用一次

时间:2015-02-19 23:25:57

标签: javascript html5

函数创建一个元素并将其附加到父元素。有问题的元素包含其他元素,其中有一个输入复选框。我向onchange事件添加了一个事件监听器。为了简洁起见,听众只会在这里写“#39;到控制台。在第一次加载页面时,这里是'消息出现,这是有道理的,因为checked属性设置为true。问题是在此之后任何点击都不会触发监听器。任何人都可以阐明这一点吗?

    function createNewRow(number){
        var row=document.createElement('div');
        automaticLegend.appendChild(row);
        var txt=document.createTextNode('Particle '+number);
        var showBtn=document.createElement('input');
        showBtn.type='checkbox';
        showBtn.checked=true;
        var labelShow=document.createTextNode('Show ');
        var traceBtn=document.createElement('input');
        traceBtn.type='checkbox';
        traceBtn.checked=true;
        var labelTrace=document.createTextNode('Trace ');
        var radiusBtn=document.createElement('input');
        radiusBtn.type='checkbox';
        radiusBtn.checked=true;
        var labelRadius=document.createTextNode('Radius ');
        var delBtn=document.createElement('input');
        delBtn.type='button';
        delBtn.value='Remove';
        row.appendChild(txt);
        row.appendChild(showBtn);
        row.appendChild(labelShow)
        row.appendChild(traceBtn);
        row.appendChild(labelTrace);
        row.appendChild(radiusBtn);
        row.appendChild(labelRadius);
        row.appendChild(delBtn);
        showBtn.onchange=resetShowFlag(showBtn);
};
function resetShowFlag(el){
    console.log('here');
}

1 个答案:

答案 0 :(得分:0)

尝试使用它。 showBtn.addEventListener('change',resetShowFlag);