JSPlumb показывает метку соединения при наведении

Я использую JSPlumb для соединения нескольких блоков и могу установить метку для соединения, используя:

JSPLUMB_INSTANCE.bind("connection", function (info) {
    info.connection.getOverlay("label").setLabel("w="+width+"<br>p="+pipelining);
});

Таким образом, метка всегда видна на соединении. Есть ли способ сделать так, чтобы метка отображалась только при наведении мыши?


person mohsaied    schedule 06.07.2014    source источник


Ответы (1)


У меня была такая же проблема, как вы описываете, мое решение выглядит так:

function setConnectionLabel(connection, label) {
    connection.bind("mouseenter", function(conn) {
        conn.addOverlay(["Label", { label: label, location:0.5, id: "connLabel"} ]);
    }); 

    connection.bind("mouseout", function(conn) {
        conn.removeOverlay("connLabel");
    });
}

Итак, в вашем случае это должно помочь:

JSPLUMB_INSTANCE.bind("connection", function (info) {
    setConnectionLabel(info.connection, "Labeltext");
});

дайте мне знать, если это сработает для вас, ура!

Обновление: используйте "mouseover" вместо "mouseenter"
Новая документация

person Remco    schedule 05.08.2014
comment
Спасибо за это. Мне кажется, что это mouseexit вместо mouseleave. - person Yster; 03.09.2015
comment
Теперь это мышь. - person Steel Nation; 04.05.2016
comment
Если на соединении есть другая метка, но видимая все время, и если вы «наведите курсор мыши» на эту метку, вместо того, чтобы соединение было передано обратному вызову «наведения мыши», вы получите метку. Как получить родительское соединение с ярлыка? - person Florian G; 03.06.2016
comment
Я исправил проблему, добавив: if (conn.hasOwnProperty('component')) { conn = conn.component } в начале каждого обратного вызова. - person Florian G; 03.06.2016