2016-06-27 4 views
1

У меня есть функция, которая создает строку, отображаемую в модальном, между двумя divs.Ошибка: недопустимое значение для <svg> атрибут width = "- Infinity" jsPlumb

//A function that creates line instance. 
function myid_create_line_instance(){ 

    jsPlumb_instance[0] = jsPlumb.getInstance();    
    var id1 = 'tpl_preview_line_1_pair_1'; 
    var id2 = 'tpl_preview_line_1_pair_2'; 


    var endpointOptions = { 
     anchor:'BottomCenter', 
     maxConnections:1,      
     endpoint:['Rectangle',{width:'1px', height:'1px' }], 
     paintStyle:{fillStyle:'#00000', dashstyle:'3 3'}, 
     connectorStyle:{lineWidth:'1px',strokeStyle:'#000000'}, 
     connector:['Straight'],           
    }; 

    div1Endpoint = jsPlumb_instance[0].addEndpoint(id1, endpointOptions); 
    div2Endpoint = jsPlumb_instance[0].addEndpoint(id2, endpointOptions);  

    jsPlumb_instance[0].connect({ 
     source:div1Endpoint, 
     target:div2Endpoint, 
    }); 
    jsPlumb_instance[0].draggable(id1); 
    jsPlumb_instance[0].draggable(id2); 
} 

После выполнения кода, он выдает 2 ошибки:

Error: Invalid value for <svg> attribute width="-Infinity" jsPlumb- 
2.1.2.js?o9evom:12902 
_attr jsPlumb-2.1.2.js?o9evom:12902 
paint jsPlumb-2.1.2.js?o9evom:13086 
_ju.extend.paint jsPlumb-2.1.2.js?o9evom:8626 
(anonymous function) jsPlumb-2.1.2.js?o9evom:2692 
redraw jsPlumb-2.1.2.js?o9evom:9322 
_draw jsPlumb-2.1.2.js?o9evom:3649 
_currentInstance.finaliseConnection jsPlumb-2.1.2.js?o9evom:3926 
connect jsPlumb-2.1.2.js?o9evom:4253 
myid_create_line_instance myid_templates.js?o9evom:4614 
myid_template_display_line myid_templates.js?o9evom:2215 
jQuery.fn.myid_choose_template myid_templates.js?o9evom:4812 
Drupal.ajax.commands.invoke ajax.js?v=7.34:608 
Drupal.ajax.success ajax.js?v=7.34:400 
ajax.options.success ajax.js?v=7.34:164 
c jquery-1.10.2.js:3048 
p.fireWith jquery-1.10.2.js:3160 
k jquery-1.10.2.js:8235 
r jquery-1.10.2.js:8778 

Вторая ошибка:

Error: Invalid value for <svg> attribute height="-Infinity" jsPlumb-2.1.2.js?o9evom:12902 
_attr jsPlumb-2.1.2.js?o9evom:12902 
paint jsPlumb-2.1.2.js?o9evom:13086 
_ju.extend.paint jsPlumb-2.1.2.js?o9evom:8626 
(anonymous function) jsPlumb-2.1.2.js?o9evom:2692 
redraw jsPlumb-2.1.2.js?o9evom:9322 
_draw jsPlumb-2.1.2.js?o9evom:3649 
_currentInstance.finaliseConnection jsPlumb-2.1.2.js?o9evom:3926 
connect jsPlumb-2.1.2.js?o9evom:4253 
myid_create_line_instance myid_templates.js?o9evom:4614 
myid_template_display_line myid_templates.js?o9evom:2215 
jQuery.fn.myid_choose_template myid_templates.js?o9evom:4812 
Drupal.ajax.commands.invoke ajax.js?v=7.34:608 
Drupal.ajax.success ajax.js?v=7.34:400 
ajax.options.success ajax.js?v=7.34:164 
c jquery-1.10.2.js:3048 
p.fireWith jquery-1.10.2.js:3160 
k jquery-1.10.2.js:8235 
r jquery-1.10.2.js:8778 

Я попробовал первую строку кода ниже сразу после инициализации jsPlumb; а затем вторую строку кода ниже, после подключения двух div, без везения.

jsPlumb_instance[0].setSuspendDrawing(true); 
jsPlumb_instance[0].setSuspendDrawing(false, true); 

Я даже попробовал метод партии, но ничего не изменилось.

jsPlumb_instance[0].batch(function() { 
//Codes about connecting the two points of line. 
}, false); 

Одна вещь, которую я заметил, это линия, которая должна быть соединяющая две точки в моей модальные был найден не в модальный. Смотрите изображение ниже:

enter image description here

Я также попытался код ниже, но проблема все еще имеют место.

jsPlumb_instance[id].repaintEverything(); 
+1

У вас есть скрипка или plnkr, которые мы можем использовать в качестве рабочего примера? Вы рассмотрели строку 12902 jsPlumb-2.1.2.js? – Twisty

ответ

1

Я столкнулся с той же ошибкой, когда у моего контейнера не было никакого размера. Я могу предположить, что вы должны явно указать контейнер для экземпляра jsPlumb:

jsPlumb.getInstance({ Container:"editor" }); 
+0

Спасибо за этот ответ. Это сработало для меня. –