【问题标题】:js dynamically created checkbox on click function not definedjs动态创建的点击功能复选框未定义
【发布时间】:2013-03-18 15:17:20
【问题描述】:

我正在动态创建一个复选框,当执行 onclick 函数时,我在控制台中收到“函数未定义”错误。在单步执行中,代码在页面加载事件期间被读取,但在单击时会引发错误。我尝试将函数加载到 $(document).ready();但得到同样的错误:

*这些函数位于页面加载时调用的函数中。 'chkBox' 是未定义的函数

function lyrBuild(lyrVar, lyrName) {
    $('<li>').attr({
        id: lyrVar.liID,
        class: 'layer'
    }).html($('<input>').attr({
        id: lyrVar.cbID,
        type: 'checkbox',
        onClick: "chkBox(" + "'" + lyrVar.liID + "'" + ")",
        checked: 'unchecked',
        name: lyrVar.Name,
        value: lyrVar.val
    })).appendTo('#layersList');
}

function chkBox(lyrId) {
    //switch statement goes here
} 

【问题讨论】:

  • 确保将 chkBox 定义放在 document.ready 闭包之外。否则它会成为局部作用域函数并且不能全局访问。

标签: javascript jquery inputbox


【解决方案1】:

你没有问题,但我还是给你一个答案;)

“这些函数在函数内部”,这意味着当您以这种方式调用chkBox 时,它不可用。如果可能,请使用.click()doc here.on(),或将chkBox 放在函数之外。

【讨论】:

    【解决方案2】:

    尝试像这样声明 dhkBox 函数:

    var chkBox = function(lyrId) {
        //switch statement goes here
    }
    

    【讨论】:

    • 这很有趣,我将用我的代码的另一部分来尝试这个。这是把函数变成一个变量。我喜欢这个方向。谢谢!
    猜你喜欢
    • 2021-11-30
    • 2011-04-18
    • 2018-05-17
    • 2019-12-14
    • 1970-01-01
    • 2012-07-24
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多