拖放动态生成的两个表之间的所有单元格
Drag and drop all the cells between two tables that are generated dynamically
在我的项目中,我必须制作一个图形界面并使用拖放来添加项目。我需要两个由用户输入生成的 table,我应该将一个 table 的单元格拖到另一个 table 的单元格中,当我这样做时,我还需要更改属性 个丢弃的单元格,例如 class 或 id。我还需要 select 多个并修改或删除掉落的单元格。如果一个单元格被放下,它也应该从拖动它的单元格中删除。
我试过下面的代码;我可以移动一个单元格,但是被拖动的单元格的 class 不会改变,我不能再从被拖动的单元格中移动它。请帮忙?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Droppable - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#chair { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: red; }
#cells { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: green; }
#table { width: 50%; float: left; }
#chairs{width: 50%; float: right;}
.dragged { width: 5px; height: 5px; padding: 0.5em; float: left; margin: 10px; background-color: blue ; }
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<div id = "table"></div>
<div id = "chairs"></div>
generate cells :
<input type="button" value="generate" onclick='generateZone();'></input>
generate chair :
<input type="button" value="chair" onclick='generateChairs();'></input>
<script type="text/javascript">
function generateZone(){
var theader = '<table>\n';
var tbody = "";
for(i= 0; i < 5; i++){
tbody += '<tr>';
for (j = 0; j< 5; j++){
tbody += '<td id = "cells" class = "freeCell" >';
tbody += i + ',' + j;
tbody += '</td>';
}
tbody += '</tr>\n';
}
var tfooter = '</table>';
document.getElementById("table").innerHTML = theader + tbody + tfooter;
$( "#table #cells" ).droppable({
drop : function(event, ui){
$(this)
.addClss("dragged")
.find("#chair");
}
});
}
</script>
<script type="text/javascript">
function generateChairs(){
var header = '<table>\n';
var body = "";
for(n= 0; n < 5; n++){
body += '<tr>';
for (m = 0; m< 5; m++){
body += '<td id = "chair" class = "AvailableCell" >';
body += n + ',' + m;
body += '</td>';
}
body += '</tr>\n';
}
var footer = '</table>';
document.getElementById("chairs").innerHTML = header + body + footer;
$( "#chairs #chair" ).draggable();
}
</script>
</body>
</html>
使用这个fiddle
HTML + CSS + JS:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
#chair { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: red; }
#cells { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: green; }
#table { width: 50%; float: left; } #chairs{width: 50%; float: right;}
.dragged { width: 5px; height: 5px; padding: 0.5em; float: left; margin: 10px; background-color: blue ; }
.freeCell {
background-color: blue ;
width: 35px; height: 35px;
margin:2px 2px 2px 2px;
}
.availableCell {
background-color: red ;
width: 35px; height: 35px;
margin:2px 2px 2px 2px;
}
</style>
</head>
<body>
<div id="table"></div>
<div id="chairs"></div>
generate cells :
<input type="button" value="generate" onclick='generateZone();'/>
generate chair :
<input type="button" value="chair" onclick='generateChairs();'/>
<script type="text/javascript">
function generateZone(){
var theader = $('<table id="newtable"></table>');
var tbody = "";
for(i= 0; i < 5; i++){
tbody += '<tr>';
for (j = 0; j< 5; j++){
tbody += '<td><div class = "freeCell">';
tbody += i + ',' + j;
tbody += '</div></td>';
}
tbody += '</tr>\n';
theader.html(tbody);
tbody = '';
}
$('#table').html(theader);
//alert(theader.find('.freeCell').attr('id'));
//$("table").innerHTML = theader + tbody + tfooter;
$('.freeCell').droppable({
drop : function(event, ui){
$(this)
.addClass("dropped!");
//.find("#chair");
}
});
}
</script>
<script type="text/javascript">
function generateChairs(){
var header = $('<table id="chairtable"></table>');
var body = "";
for(n= 0; n < 5; n++){
body += '<tr>';
for (m = 0; m< 5; m++){
body += '<td><div class = "availableCell">';
body += n + ',' + m;
body += '</div></td>';
}
body += '</tr>\n';
header.html(body);
body = '';
}
$('#chairs').html(header);
//var footer = '</table>';
//$("chairs").innerHTML = header + body + footer;
$('.availableCell').draggable({ revert: 'invalid' });
}
</script>
</body>
</html>
在我的项目中,我必须制作一个图形界面并使用拖放来添加项目。我需要两个由用户输入生成的 table,我应该将一个 table 的单元格拖到另一个 table 的单元格中,当我这样做时,我还需要更改属性 个丢弃的单元格,例如 class 或 id。我还需要 select 多个并修改或删除掉落的单元格。如果一个单元格被放下,它也应该从拖动它的单元格中删除。
我试过下面的代码;我可以移动一个单元格,但是被拖动的单元格的 class 不会改变,我不能再从被拖动的单元格中移动它。请帮忙?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Droppable - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#chair { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: red; }
#cells { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: green; }
#table { width: 50%; float: left; }
#chairs{width: 50%; float: right;}
.dragged { width: 5px; height: 5px; padding: 0.5em; float: left; margin: 10px; background-color: blue ; }
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<div id = "table"></div>
<div id = "chairs"></div>
generate cells :
<input type="button" value="generate" onclick='generateZone();'></input>
generate chair :
<input type="button" value="chair" onclick='generateChairs();'></input>
<script type="text/javascript">
function generateZone(){
var theader = '<table>\n';
var tbody = "";
for(i= 0; i < 5; i++){
tbody += '<tr>';
for (j = 0; j< 5; j++){
tbody += '<td id = "cells" class = "freeCell" >';
tbody += i + ',' + j;
tbody += '</td>';
}
tbody += '</tr>\n';
}
var tfooter = '</table>';
document.getElementById("table").innerHTML = theader + tbody + tfooter;
$( "#table #cells" ).droppable({
drop : function(event, ui){
$(this)
.addClss("dragged")
.find("#chair");
}
});
}
</script>
<script type="text/javascript">
function generateChairs(){
var header = '<table>\n';
var body = "";
for(n= 0; n < 5; n++){
body += '<tr>';
for (m = 0; m< 5; m++){
body += '<td id = "chair" class = "AvailableCell" >';
body += n + ',' + m;
body += '</td>';
}
body += '</tr>\n';
}
var footer = '</table>';
document.getElementById("chairs").innerHTML = header + body + footer;
$( "#chairs #chair" ).draggable();
}
</script>
</body>
</html>
使用这个fiddle
HTML + CSS + JS:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
#chair { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: red; }
#cells { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: green; }
#table { width: 50%; float: left; } #chairs{width: 50%; float: right;}
.dragged { width: 5px; height: 5px; padding: 0.5em; float: left; margin: 10px; background-color: blue ; }
.freeCell {
background-color: blue ;
width: 35px; height: 35px;
margin:2px 2px 2px 2px;
}
.availableCell {
background-color: red ;
width: 35px; height: 35px;
margin:2px 2px 2px 2px;
}
</style>
</head>
<body>
<div id="table"></div>
<div id="chairs"></div>
generate cells :
<input type="button" value="generate" onclick='generateZone();'/>
generate chair :
<input type="button" value="chair" onclick='generateChairs();'/>
<script type="text/javascript">
function generateZone(){
var theader = $('<table id="newtable"></table>');
var tbody = "";
for(i= 0; i < 5; i++){
tbody += '<tr>';
for (j = 0; j< 5; j++){
tbody += '<td><div class = "freeCell">';
tbody += i + ',' + j;
tbody += '</div></td>';
}
tbody += '</tr>\n';
theader.html(tbody);
tbody = '';
}
$('#table').html(theader);
//alert(theader.find('.freeCell').attr('id'));
//$("table").innerHTML = theader + tbody + tfooter;
$('.freeCell').droppable({
drop : function(event, ui){
$(this)
.addClass("dropped!");
//.find("#chair");
}
});
}
</script>
<script type="text/javascript">
function generateChairs(){
var header = $('<table id="chairtable"></table>');
var body = "";
for(n= 0; n < 5; n++){
body += '<tr>';
for (m = 0; m< 5; m++){
body += '<td><div class = "availableCell">';
body += n + ',' + m;
body += '</div></td>';
}
body += '</tr>\n';
header.html(body);
body = '';
}
$('#chairs').html(header);
//var footer = '</table>';
//$("chairs").innerHTML = header + body + footer;
$('.availableCell').draggable({ revert: 'invalid' });
}
</script>
</body>
</html>