麻烦将JS函数作为参数

时间:2017-11-07 11:22:15

标签: javascript function checkbox parameter-passing quotes

JS新手:我尝试使用JS在单击复选框时将一些HTML附加到表单字段集: 首先,我将事件onchange添加到复选框,并将其设置为我的函数:

<fieldset class="lapsFS" id="manLapsFS"><legend>Manual laps</legend>
    <input type="checkbox" name="lapsCB" value="manlapsCB" 
           onchange="cbHandleChange(this, addLap, 'manLapsFS', clearFS, 'manLapsFS');">
    <label>Enable manual laps</label><br>
</fieldset>

cbHandleChange参数:
1.复选框处理
2.复选框打开时调用的功能
3.参数为2
4.复选框关闭时调用的功能
5.参数为4

这里是cbHandleChange:

function cbHandleChange(cb, funcOn, paramOn, funcOff, paramOff) {
    if(cb.checked == true) { 
        funcOn.call(paramOn); 
    } else {
        funcOff.call(paramOff); 
    } 
}

这是作为参数4传递的函数:

function clearFS(fs) {
    fs.innerHTML = "";
}   

我曾尝试将单引号放在onchange="cbHandleChange(this, addLap, 'manLapsFS', clearFS, 'manLapsFS');"而不是放入它们,但我仍然得到了

  

未定义cbHandleChange

我哪里错了?

编辑:我在我的问题中编辑了cbHandleChange,因为我忘记了大括号。

1 个答案:

答案 0 :(得分:0)

你有花括号的问题

function cbHandleChange(cb, funcOn, paramOn, funcOff, paramOff) {
    if(cb.checked == true) {
        funcOn.call(paramOn);
    }       
    else 
        funcOff.call(paramOff);
    }