【发布时间】:2020-05-06 16:12:46
【问题描述】:
我有一个测试div,当div 拖放到选项卡中时我可以将它拖到表格中,我将目标<td> 涂成蓝色。
现在,当我单击、按住并滑动到蓝色 <td> 的右侧或左侧时,我想让所有其他 td beeing 着色,就像调整大小一样。
所以我的问题是:
如何“调整”我的蓝色<td>?
“调整大小”不是一个好词,因为我想模拟它为其他人着色<td>,如果您有线索/方法可以通过单击并向右或向左滑动来调整大小,我将不胜感激。
我尝试使用 jquery ui resizable 将div 直接放在td 中,但我无法用它制作我想要的东西(我想?)
请看一下代码 sn-p,很难解释我想从 jQuery 中得到什么。
提前致谢
$(function () {
// There's the gallery and the trash
var $job = $("#testblocks"),
$ressource = $(".ressource");
// Let the gallery items be draggable
$("div", $job).draggable({
cancel: "a.ui-icon", // clicking an icon won't initiate dragging
revert: "invalid", // when not dropped, the item will revert back to its initial position
containment: ".containment-wrapper",
helper: "clone",
cursor: "move",
snap: "td",
scroll: false,
refreshPositions: true,
drag: function () {
var offset = $(this).offset();
var xPos = offset.left;
var yPos = offset.top;
/*$('#posX').text('x: ' + xPos);
$('#posY').text('y: ' + yPos);*/
}
});
/*$("div", $job).resizable({
handles: 'e, w',
containment: ".containment-wrapper"
});*/
$ressource.droppable({
hoverClass: 'hovering',
tolerance: 'pointer',
accept: "#testblocks > div, .ressource div",
classes: {
"ui-droppable-active": "ui-state-highlight"
},
drop: function (event, ui) {
//$(ui.draggable).appendTo($(this));
$(this).css("background-color", "blue");
$(this).next("td").css("background-color", "blue");
$(this).next("td").next("td").css("background-color", "blue");
$(this).next("td").next("td").next("td").css("background-color", "blue");
}
});
$job.droppable({
accept: ".ressource div",
classes: {
"ui-droppable-active": "custom-state-active"
},
drop: function (event, ui) {
$(ui.draggable).appendTo($job);
}
});
});
.drag {
height: 49px;
width: 60px;
text-align: center;
}
td {
border: 1px solid black;
/*height:50px;*/
width: 160px;
}
th {
border: 1px solid black;
/*height:50px;*/
width: 180px;
}
tr {
border: 1px solid black;
height: 150px;
}
.basr {
height: 150px;
}
.masterContent {
padding: 0;
margin: 0;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<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>
<table cellspacing="0" style="border:1px solid black; text-align:center;">
<tr style="border:1px solid black;">
<th style="border:1px solid black;"></th>
<th style="border:1px solid black;">Lundi</th>
<th style="border:1px solid black;">Mardi</th>
</tr>
</thead>
<tbody>
<tr>
<th>Ressource 1</th>
<td colspan="6" rowspan="4" class="masterContent">
<table cellspacing="0" style="border:0;width:100%;" class="containment-wrapper">
<tr>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
</tr>
<tr>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
<td><table cellspacing="0" style="border:0;">
<tr style="border:0;">
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
<td style='border:0;' class='ressource'></td>
</tr>
</table></td>
</tr>
<tr class="basr">
<td colspan="26" id="testblocks">
<div class="ui-widget-content ui-corner-tr drag">
test
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>Ressource 2</th>
</tr>
<tr class="basr">
<th>bac à sable</th>
</tr>
</tbody>
</table>
【问题讨论】:
-
那么你的代码有什么问题?我们如何复制或测试它?在任何特定的浏览器上都会发生这种情况吗?
-
您还缺少
<thead>元素。 -
嗨,我不知道如何“调整”我的蓝色
<td>。调整大小不是一个好词,因为我想模拟它在点击时为其他人着色<td>,然后像调整大小一样向右或向左滑动,如果你有线索/方法可以跟随,我会很感激的。是的,你是真的,我忘记了<thead>...代码 sn-p 用于测试我实际所做的工作。 -
听起来像是在它被放下后,你想要调整一个“ghost”元素的大小,然后“填充”它下面的单元格。
-
非常感谢您的回复。不是鬼,我丢弃的元素是一个日历事件,我想调整这个事件的大小。要调整它的大小,当我单击并按住彩色单元格(
<td>)的右边框或左边框时,我需要用相同的颜色为下一个或上一个<td>着色(如果可能的话)调整大小光标...
标签: javascript html jquery css jquery-ui