#javascript #jquery #connection #jsplumb
#javascript #jquery #подключение #jsplumb
Вопрос:
Вот проблема, с которой я столкнулся.
for (var i=0; i < arr.length; i ) {
var instance = initializeInstance(wrapperID);
allConnections.push(instance.connect (
{
source : connectionsArray[j].source,
target : connectionsArray[j].target
}
));
jsPlumb.fire(".some-selector", instance);
}
Таким образом, я сохраняю все соединения на странице между элементами. Пользователь имеет возможность динамически добавлять новые элементы на страницу… он / она делает это, перетаскивая указатель мыши с одного элемента на другой на странице ….. я не знаю, как добавить вновь созданное соединение в мой массив allConnections.
newInstance = initializeInstance(wrapperID);
newInstance.bind('connection', function(info){
// TO DO: push to allConnections Array newly created connection
// allConnections.push(this.connect(info.sourceId, info.targetId)); - this line does'n work :(
});
Как добавить вновь созданное соединение в пользовательском интерфейсе в мой массив allConnections?????
Ответ №1:
Зачем вам нужен собственный массив ?! Вы всегда query
можете jsPlumb вернуть все соединения.
jsPlumb.getAllConnections()
или jsPlumb.select()
Выше будет возвращен массив соединений. Вы можете использовать его везде вместо использования allConnections (массив из рассматриваемого кода)
Документы — http://jsplumbtoolkit.com/doc/querying
Во-вторых, если вы все еще хотите добавить его в свой массив, вы можете привязаться к событиям, предоставляемым jsPlumb. connection
событие запускается всякий раз, когда создается новое соединение.
Документы — http://jsplumbtoolkit.com/doc/events#evt-connection
В-третьих, нет необходимости создавать несколько экземпляров jsPlumb. Вы можете просто использовать jsPlumb.connect
или создать один его экземпляр и использовать его везде. В настоящее время код использует jsPlumb
, instance
и newInstance
и последние два создаются время от времени.