Удалите svg onclick для d3. js wordcloud - PullRequest
0 голосов
/ 15 января 2020

У меня есть форма html для выбора источника данных для подачи моего облака слов в d3. js, но мне трудно заставить его работать. вот код, который у меня есть.

Я использую решение для облачного слова из https://github.com/wvengen и разместил сценарии. js в сети моего проекта

EDITION:

Я могу загрузить выбранные данные, но они загружают старые данные, мне нужно удалить событие svg и добавить новое.

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">

    <script src="https://d3js.org/d3.v3.min.js"></script>

</head>
<body>

<div id='option'>
    <form>
        <select name="select_data">
            <option value="data" onclick="setData()">All</option>
            <option value="data_a" onclick="aData()">First</option>
            <option value="data_b" onclick="bData()">Second</option>
            <option value="data_c" onclick="cData()">Third</option>
        </select>
    </form>
</div>
<div id='wordcloud'></div>

<script src="https://www.agencia-ahi.cl/archive/d3.layout.cloud.js"></script>
<script src="https://www.agencia-ahi.cl/archive/d3.wordcloud.js"></script>

<script>

var data = [{"text":"perro", "size":67},{"text":"gato", "size":59},{"text":"oso", "size":40}];
var data_a = [{"text":"paloma", "size":64},{"text":"garza", "size":55}];
var data_b = [{"text":"leon", "size":7},{"text":"zorrillo", "size":3}];
var data_c = [{"text":"raton", "size":3}];

d3.wordcloud()
        .words(data)
        .start();

function setData() {
    d3.wordcloud()
        .words(data)
        .start();
        }

function aData() {
    d3.wordcloud()
        .words(data_a)
        .start();
        }

function bData() {
    d3.wordcloud()
        .words(data_b)
        .start();
        }

function cData() {
    d3.wordcloud()
        .words(data_c)
        .start();
        }

</script>
</body>
</html>

1 Ответ

1 голос
/ 17 января 2020

добавить функцию удаления SVG после функции onclick

    d3.select("svg").remove();
...