繁体   English   中英

内联onclick处理程序不起作用

[英]Inline onclick handler does not work

我想使用INLINE回调函数,因此,我具有以下html标记:

    var callback = function (index) {
        return function () {
            return action.delete({
                index: index
            })
        }
    }
    var markup = items.map(function (item, index) {
        return ('<button onclick="return ' + callback(index) + ';">Delete</button>')
    }).join('\n') 

    document.getElementById('main').innerHTML = markup

但是,当我单击按钮时,我的回调不起作用。 上面的代码有什么问题? 谢谢。

在您的情况下, callback(index)返回函数,但是当它与字符串连接时,隐式调用函数的.toString()方法并将函数主体作为字符串返回。

您的代码应如下所示:

var callback = function (index) {
     return action.delete({
        index: index
     });
}
var markup = items.map(function (item, index) {
    return ('<button onclick="return callback(' + index + ');">Delete</button>')
}).join('\n') 

document.getElementById('#main').innerHTML = markup

在这种情况下,必须在全局范围内定义callback函数。

最好使用addEventListener设置click事件的侦听器功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM