Посмотрите это jsfiddle https://jsfiddle.net/3o38nbzs/4/ Когда я клонирую, я могу переместить клон, но он не «прослушивает» клик. https://jsfiddle.net/L5mg87jm/ Когда я клонирую, клон статичен.Клон JavaScript не работает
Сначала я использовал Clone() и второй клон (true, true), что является единственной разницей.
Как создать клон для ответа на событие click?
В принципе, я знаю, когда пользователь нажимает на клонированный объект. Я попытался использовать клон (true, true), но он все еще не работает. Когда я использую .clone(), я могу перемещать объект, но щелчок не работает. Когда я использую .clone (true, true), ничего не работает.
// Clone Block
function cloneblock(obj, event, ui) {
var idn = Math.floor((Math.random() * 100) + 1), idt = '#' + idn;
if (obj) {
var block = $(selected).clone();
block.css({ left: mouse.X + 'px', top: mouse.Y + 'px' }).attr('id', idn).removeClass('ui-draggable selected');
} else {
var block = $(ui.draggable).clone();
block.css({ left: mouse.X + 'px', top: mouse.Y + 'px' }).attr('id', idn).removeClass('ui-draggable selected gblock').addClass('block');
}
block.children('.ui-widget-content').children('p').children('.vertexout').attr('id', 'vo' + idn);
var exit = block.children('.ui-widget-content').children('p').children('.vertexout');
if ($(exit).hasClass('image')) {
$(exit).attr('id', 'v' + idn + 4);
jsPlumb.makeSource($(exit), {
scope: 'image'
});
} else if ($(exit).hasClass('int')) {
$(exit).attr('id', 'v' + idn + 5);
jsPlumb.makeSource($(exit), {
scope: 'int'
});
} else if ($(exit).hasClass('float')) {
$(exit).attr('id', 'v' + idn + 6);
jsPlumb.makeSource($(exit), {
scope: 'float'
});
} else {
$(exit).attr('id', 'v' + idn + 7);
jsPlumb.makeSource($(exit), {
scope: 'char'
});
}
var vin2 = block.children('.ui-widget-content').children('p').children('.vertexin');
for (i = 0; i < vin2.length; i++) {
if ($(vin2[i]).hasClass('image')) {
$(vin2[i]).attr('id', 'v' + idn);
jsPlumb.makeTarget($(vin2[i]), {
maxConnections: 1,
scope: 'image'
});
} else if ($(vin2[i]).hasClass('int')) {
$(vin2[i]).attr('id', 'v' + idn + 1);
jsPlumb.makeTarget($(vin2[i]), {
maxConnections: 1,
scope: 'int'
});
} else if ($(vin2[i]).hasClass('float')) {
$(vin2[i]).attr('id', 'v' + idn + 2);
jsPlumb.makeTarget($(vin2[i]), {
maxConnections: 1,
scope: 'float'
});
} else {
$(vin2[i]).attr('id', 'v' + idn + 3);
jsPlumb.makeTarget($(vin2[i]), {
maxConnections: 1,
scope: 'char'
});
}
}
block.appendTo($(container));
jsPlumb.draggable($(idt), dragop);
resize();
}
Это * много * кода. Не могли бы вы сузить его до частей, связанных с воссозданием проблемы в вопросе. –
И, пожалуйста, исправьте свой код, чтобы он был правильно отступом, поскольку он не очень читаем, как есть. Вы можете всегда использовать что-то вроде http://jsbeautifier.org/ для исправления отступов. – jfriend00