将d3.js与jquery函数调用相结合

时间:2016-10-23 14:53:46

标签: javascript jquery d3.js

这个问题的动机是基于我以前的question绘制散点图和wordcloud。 Jason Davies的wordcloud不知怎么对我不起作用,所以我用纯jQuery wordcloud取代它 - jQCloud

申请的目的保持不变。当我在散点图上查看点时,应该出现wordcloud。我有两个问题:

  1. 当页面加载时,我应该重复两次以渲染wordcloud。我不明白为什么。
  2. 在当前设置中,wordcloud在调用<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 事件时不会隐藏。如何修复?
  3. 任何想法都表示赞赏。代码粘贴在下面,也粘贴在JSFiddle上。

    mouseout

1 个答案:

答案 0 :(得分:1)

  1. 您正在使用jCloud的“更新”功能,我无法找到它的文档。如果只在云已经填充时才调用'更新',一切都很顺利:

    var cloudInitialized = false;
    // FUNCTION TO DISPLAY WORDCLOUD
    circle.on('mouseover', function(d){
      d3.selectAll("#my_words span").style("display", "inline");
    
      if (cloudInitialized)
        $("#my_words").jQCloud("update", d[2]);
      else
        $("#my_words").jQCloud(d[2]);
    
      cloudInitialized = true;
    });
    
  2. 您在代码中隐藏了一个不同的 div(一种工具提示,而不是wordcloud)。

  3. 工作示例: https://jsfiddle.net/povrp9sk/10/