我正在使用JQCloud构建tagcloud。它简单易用,符合用户的视觉标准。我想在用户点击单词时调用点击处理程序:
var tag_list = new Array();
for ( var i = 0; i < stuff.length; ++i ) {
var x = stuff[i];
tag_list.push({
text: x.NAME,
weight: x.COUNT,
//link: this.mkUrl(x),
click: function() { alert("it worked for " + x.NAME); },
html: {title: this.mkTooltip(x)}
});
}
$("#"+containerdivname).append( $("<div></div>", {id:"wordcloud"}));
$("#"+containerdivname).children("#wordcloud").jQCloud( tag_list );
单词云渲染正常,有适当的工具提示,但在点击时不显示警告框。我在这里做错了什么?
由于
答案 0 :(得分:2)
JQCloud中的处理程序应该像这样指定:
handlers : {click: function() { alert("it worked for" + x.NAME); }}
答案 1 :(得分:0)
有点不同,也许更容易实现它的方法是,像这样构建你的数组:
var stuff = [];
stuff.push({"text":"n1","weight":23,"handlers" : {click: function(res) { alert("it worked for"+res.target.textContent);}}})
这将为您提供所点击节点的值。
或者如果你想将它传递给一个函数,你可以像这样使用它:
stuff.push({"text":"n1","weight":23,"handlers" : {click: function(res) { run(res) }}})
function run(res){
alert("it worked for"+res.target.textContent);
}
希望此解决方案有所帮助!
答案 2 :(得分:0)
您可以随时为您的点击添加标准的jquery处理程序:
$(document).on('click', '#container-id .jqcloud-word', function() {
var word_value = $(this).val();
console.log(word_value);
});