我试图通过onclick
属性绑定一个函数,但我得到函数未定义错误。 fiddle
(function() {
function getInfo(x) {
console.log(x)
}
function a() {
var x = [{
"name": "main",
"data": ['1', '2', '3']
}, {
"name": "sub",
"data": ['4', '5', '6']
}, {
"name": "lower",
"data": ['7', '8', '9']
}]
for (var i = 0; i < x.length; i++) {
var data = "<span onclick='getInfo(" + x[i].data + ")'>main </span>";
data += "<span onclick='getInfo(" + x[i].data + ")'>sub </span>"
data += "<span onclick='getInfo(" + x[i].data + ")'>lower</span><br>"
$('#data').prepend(data);
}
}
a()
})()
答案 0 :(得分:1)
我认为你得到undefined
的原因是因为onclick
会尝试在全局范围内找到函数,而你的getInfo
函数是在函数范围内定义的。
然后,您应该将getInfo
作为全局范围(window
)的属性来解决问题。例如:
window.getInfo = function(x) {
console.log(x)
}
请在此处查看更新的fiddle.js:https://jsfiddle.net/fddr0bnv/6/