gpt4 book ai didi

jquery - 添加可拖动到表行(使用 Kendo Grid)

转载 作者:行者123 更新时间:2023-12-01 08:09:57 26 4
gpt4 key购买 nike

我正在尝试在表格的行上添加可拖动事件,但没有得到我应该得到的结果。这是一个创建表结构的 Kendo Grid。最后,如果可能的话,我想把这一行放在不是剑道的东西上。

HTML

<div id="Assets" style="width: 200px; float: left;" data-role="grid" class="k-grid k-widget" tabindex="0">
<ul>
<div class="k-widget k-grid" id="Assets">
<div class="k-grid-header">
<div class="k-grid-header-wrap">
<table cellspacing="0">
<colgroup>
<col style="width: 240px">
</colgroup>
<tbody></tbody>
</table>
</div>
</div>
<div class="k-grid-content" style="height: 200px">
<div class="k-grid-header" style="padding-right: 17px;">
<div class="k-grid-header-wrap">
<table cellspacing="0">
<colgroup><col style="width: 240px"></colgroup>
<thead>
<tr data-role="draggable">
<th class="k-header" data-field="Id" data-title="Id" scope="col" style="display: none"><span class="k-link">Id</span></th>
<th class="k-header" data-field="Name" data-title="Name" scope="col"><span class="k-link">Name</span></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<table cellspacing="0" class="k-focusable">
<colgroup><col style="width: 240px"/></colgroup>
<tbody>
<tr data-uid="cc7fc98a-dc66-4a46-8d3a-b73d608cf32b">
<td style="display: none">1</td>
<td>A Commons</td>
</tr>
<tr class="k-alt" data-uid="daf17bf4-52d3-43a4-acc0-034c7c53e5af">
<td style="display: none">2</td>
<td>A Chase</td>
</tr>
<tr data-uid="6dbe2dec-e9ce-4640-8f61-f1ee4469a581">
<td style="display: none">4</td>
<td>Beacon</td>
</tr>
<tr class="k-alt" data-uid="569798d6-433c-4dea-b56b-5833bab22058">
<td style="display: none">5</td>
<td>Seminole</td>
</tr>
<tr data-uid="4639277c-97eb-43d0-9aa1-6402671474b5">
<td style="display: none">6</td>
<td>Commons</td>
</tr>
<tr class="k-alt" data-uid="9ad1bf14-91bf-474f-9115-246c55c38eab">
<td style="display: none">3</td>
<td>Willows</td>
</tr>
</tbody>
</table>
</ul>
</div>

JS

这是我的代码,尝试选择我需要的 tr:

$(".k-focusable > tbody > tr").kendoDraggable({
hint: function(e) {
item = $('<div class="k-grid k-widget" style="background-color: lightblue; color: black;"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
return item;
},
});

我更喜欢用纯粹的 jQuery 方式来实现:

$("<selector>").draggable({
cursor: 'move',
distance: 40,
helper: 'clone',
opacity: 0.8,
revert: 'invalid',
revertDuration: 100,
snap: 'div.node.expanded',
snapMode: 'inner',
stack: 'div.node',
});

最佳答案

不确定放置时要做什么,但这应该可以将行从 Kendo 网格移动到可放置区域但是它实际上并没有从网格中删除元素 所以你应该(或不?)。

放置时我所做的是克隆正在移动的元素并将此克隆插入到目标区域。

HTML 代码:

<div id="grid"></div>
<table id="target" class="k-widget k-grid">
<thead>
<tr>
<th class="k-header" colspan="2">Drop inside red area</th>
</tr>
</thead>
</table>

JavaScript 网格初始化:

var dataSource = new kendo.data.DataSource({
data : [
{"ID": 1, "Nom": "John"},
{"ID": 2, "Nom": "Jane"},
{"ID": 3, "Nom": "Sam"},
{"ID": 4, "Nom": "Charles"},
{"ID": 5, "Nom": "Paul"},
{"ID": 6, "Nom": "Josh"},
{"ID": 7, "Nom": "Daniel"}
],
pageSize: 8
});

var grid = $("#grid").kendoGrid({
dataSource: dataSource,
columns : [
{field: "ID" },
{field: "Nom"}
]
}).data("kendoGrid");

最后是拖放:

$("tr", grid.tbody).kendoDraggable({
hint: function (e) {
item = $('<div class="k-grid k-widget" style="background-color: lightblue; color: black;"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
return item;
}
});

$("#target").kendoDropTarget({
drop: function (e) {
e.dropTarget.append($(e.draggable.currentTarget).clone());
}
});

查看它正在运行here

关于jquery - 添加可拖动到表行(使用 Kendo Grid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com