如何在JQCloud中提供单击处理程序

我正在使用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( $("
", {id:"wordcloud"})); $("#"+containerdivname).children("#wordcloud").jQCloud( tag_list );

单词云渲染正常,有适当的工具提示,但在点击时不显示警告框。 我在这做错了什么?

谢谢

JQCloud中的处理程序应该像这样指定:

 handlers : {click: function() { alert("it worked for" + x.NAME); }} 

工作实例, http://jsfiddle.net/Q6348/7/

实现它的一点点不同,也许是一种更简单的方法,就像这样构建你的数组:

 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); } 

希望此解决方案有所帮

您可以随时为您的点击添加标准的jquery处理程序:

 $(document).on('click', '#container-id .jqcloud-word', function() { var word_value = $(this).val(); console.log(word_value); });