我正在尝试使用单击事件处理程序实现jQCloud词云。它需要我在 JSON 中传递一个 javascript 函数。
在 C# 中,我制作了动态 JSON 文本
foreach (var r in result)
{
sbChart.Append("{\"text\": \"" + r.Key + "\", \"weight\": " + r.Count().ToString() + ", ");
sbChart.Append("\"handlers\": { \"click\": \"function() { alert('You clicked " + r.Key + "');}\"}}, ");
}
if (sbChart.Length != 0)
{
returnString = "[" + sbChart.ToString().Substring(0, sbChart.Length - 2) + "]";
}
我通过 web 方法将此返回到我的代码所在的 javascript
var words = JSON.parse(strJSON);
$('#div').jQCloud(words);
生成的 JSON 是
[
{"text": "the", "weight": 111, "handlers": { "click": "function() { alert('You clicked the');}"}},
{"text": "in", "weight": 66, "handlers": { "click": "function() { alert('You clicked in');}"}}
]
但是,由于我的函数是一个字符串,它不会作为对象执行。如果我在函数语句之前和之后删除双引号,它会Invalid Character
在解析期间给我错误。
请任何人都可以帮助我如何使此警报起作用?