Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RGraph通过单击关键元素隐藏线加标签_Javascript_Canvas_Rgraph - Fatal编程技术网

Javascript RGraph通过单击关键元素隐藏线加标签

Javascript RGraph通过单击关键元素隐藏线加标签,javascript,canvas,rgraph,Javascript,Canvas,Rgraph,我有一张这样的图: 我试图实现的是,当我单击引用该行的键时,隐藏该行以及带有该行的标签 我在文档中找到了,并尝试这样做: $(line.canvas).on('click', function (e) //line is the name of the graph of both green and red lines { var key = RGraph.Registry.get('key-element'); console.l

我有一张这样的图:

我试图实现的是,当我单击引用该行的键时,隐藏该行以及带有该行的标签

我在文档中找到了,并尝试这样做:

$(line.canvas).on('click', function (e) //line is the name of the graph of both green and red lines
        {
            var key = RGraph.Registry.get('key-element');
            console.log(key);

            if (key) {
                console.log("true");
            }
        });
我发现这是毫无意义的,因为当我点击键时,它们返回奇怪的输出,要么是null,要么是其他与我想要的键不同的键

我还发现obj.hide[index]只将颜色设置为rgba0,0,0,0,这不会隐藏LabelsUpper属性


当我点击按键时,如何解决这个问题并正确隐藏线条?

这个演示会隐藏/显示线条,但上面的标签仍然存在。所以在下一个测试版中,我必须看看这个

代码如下:

function createandcall(rackname, racknameid, stb) {
    $('#maintable').append('<table class="table"><tbody><tr style="text-align:center"><td><h2>' + rackname + '</h2><table class="table"><tbody style="text-align:left"><tr id="STBL"></tr><tr id="STBL1"></tr><tr id="STBL2"></tr><tr id="STBL3"></tr></tbody></table></td></tr></tbody></table>');
    for (i = 1; i < stb + 1; i++) {
        createtable(i);
        callstb(rackname, racknameid, i);
    }
    return;
}

function callstb(rackname, racknameid, i) {

    $.ajax({
        type: "GET",
        dataType: 'text',
        url: "http://localhost:3000/index/" + rackname + ' ' + racknameid + ' ' + i,
        success: function (data) {
            response = '\#stb' + i;
            idtd = '\#tdstb' + i;
            $(response).html(data.replace(/\[32m/gi, '').replace(/\[0\;33m/gi, '').replace(/\[0m/gi, '').replace(/\[33m/gi, '').replace(/\[37m/gi, '').replace(/\[31m/gi, ''));
            pre = $(response).html().toString();

        },
        error: function (error) {
            $("#error").html('Error trying to get the STBs report');
            $("#error").show();
        }
    })
}
server.js:

app.get('/index/*', (req, res) => {
    parsedparam = req.params[0].split(" ")
    rackname = parsedparam[0]
    racknameid = parsedparam[1]
    stb = parseInt(parsedparam[2])
    verifystbs(rackname, racknameid, stb, res);
});

function openconnection() {
    con.connect(() => { console.log("RackChecker connected with database!") });
}

function closeconnection() {
    con.end(() => { console.log("Connection Closed") });
}

function verifystbs(rackname, racknameid, stb, res) {
    openconnection();
    con.query("SELECT (SELECT UCASE(name) FROM models WHERE s.model = id) as Model,\
        (SELECT UCASE(name) FROM manufacturers WHERE s.manufacturer = id) as Branch,\
        (SELECT UCASE(name) FROM racks WHERE s.rack = id) as Rack,\
        s.name as Stb,\
        x.pr as Jira, \
        x.reason as Reason,\
        x.requestor AS Stress_Request,\
        x.version as Version\
        FROM \
        stbs s \
        LEFT JOIN \
        stressrun x \
        ON (s.active = 1 && s.rack = (SELECT id FROM racks WHERE name = '"+ racknameid + "')) \
        WHERE x.id = (SELECT max(id) FROM stressrun y WHERE y.stb_id = s.id) and s.name like ('STB_%"+ stb + "')\
        and x.reason in ('failed','other','new build') ORDER BY s.name;", (err, result) => {
        console.log(result)
        if (!Array.isArray(result) || !result.length) {
            callnewstb = shell.exec('./shellscript/callnewstb.sh ' + rackname + ' ' + stb, { async: true });
            callnewstb.stdout.on('data', (data) => {
                res.send(data);
            });
        }
        else {
            for (i = 0; i < result.length; i++) {
                parsestbnumber = result[i].Stb.split("_");
                stbnumber = parseInt(parsestbnumber[1]);
                stbnumber = stbnumber * 1;
                if (stb == stbnumber) {
                    res.send("Stress Test is not running on <b>" + result[i].Stb + "</b><br>Reason: <b>" + result[i].Reason + "</b><br>Jira Ticket: <b><a href='https://link.jira.com/browse/" + result[i].Jira + "'>" + result[i].Jira + "</a></b><br>Build Version: <b>" + result[i].Version)
                    break
                }
                else {
                    callnewstb = shell.exec('./shellscript/callnewstb.sh ' + rackname + ' ' + stb, { async: true });
                    callnewstb.stdout.on('data', (data) => {
                        res.send(data);
                    })
                }
            }
        }
    });
    closeconnection();
}

我正要建议使用.hide函数,直到您提到上面的标签也没有被隐藏。我必须为v5解决这个问题。1@Richard那么酷:p关键问题呢?关键问题?要隐藏该行,您确实可以在InteractiveKey之前或之后使用hide方法与InteractiveKey事件结合使用,尽管您仍然可以获得上面的标签。如果在理论上隐藏了相关行之后,您可以更改标签上方的标签,使标签上方的相关行为空,这样它们就不会显示。我想你需要用标签。这并不是无足轻重的。我明天将发布一个新版本,这样当我完成这项工作后,我可以在相关行不可见的情况下,让上面的标签不可见。谢谢@Richard!然后我会尝试这种方法:我会添加上面标签的隐藏,这样当一条线被隐藏时,标签也会被隐藏。是的,那太好了。好吧,有了这个库,它会抛出,而5.01折线图库工作得很好。您想让我发送一段代码吗p标签没有出现,当我点击其中一个键时,它会在红色圆圈中抛出这两个错误。