通过jQuery UI在行内的动态列中删除元素
起初我将Row
(带有rowDashboard
类的div)添加到content
(带有content
id的div)。这会在Row
创建三列(div类和列类),如下所示:
然后我想将Button
(带有buttonDashboard
类的div)添加到jQuery UI中的拖放columns
,如下所示:( jsfiddle )
HTML
Row
脚本
var rowIndex = 0; var buttonIndex = 0; $(init); function init() { var $id = 1; $('.rowDashboard').draggable({ containment: '#content', cursor: 'move', helper: addNewRow, revert: "invalid", }); $('#content').droppable({ accept: ".rowDashboard", drop: function (ev, ui) { ui.helper.attr('style', ''); $(ui.helper).addClass('rowDraggable'); $item = $(ui.helper).clone(); $item.appendTo('#content'); }, }); //------- buttonDraggable ----------- $('.buttonDashboard').draggable({ containment: '#content', cursor: 'move', helper: addNewButton, }); } function addNewButton() { buttonIndex++; return ' '; } function addNewRow() { var row = $(document.createElement('div')); generateColumns('4-4-4', row); return row; } function generateColumns(subType, row) { var columns = subType.split('-'); for (var i = 0; i < columns.length; i++) { $col = $(document.createElement('div')); var cssClass = getCssClassColumn(columns[i]); $col.addClass(cssClass); // Allow droppable enableDroppable($col); row.append($col); } } function enableDroppable($item) { $item.droppable({ accept: ".buttonDashboard", drop: function (ev, ui) { alert('ok'); ui.helper.attr('style', ''); $item = $(ui.helper).clone(); $item.appendTo($(this)); }, }); } // Get column class function getCssClassColumn(type) { var cssClasses = { '12': 'col-sm-12 column', '6': 'col-xs-6 column', '4': 'col-xs-4 column', 'default': 'col-sm-12 column' }; return (cssClasses[type] || cssClasses['default']); }
但我不知道为什么button
不会添加到column
。
如果有人可以解释这个问题的解决方案,将会非常有帮助。