【发布时间】:2015-06-16 02:06:53
【问题描述】:
这让我很生气,希望有人能提供帮助。
我有这个 React.Component:
var Vehicle = React.createClass({
ondragend: function(e) {
e.preventDefault();
// Logic here
console.log('onDragOver');
},
ondragstart: function(e){
e.preventDefault();
console.log('ondragstart');
},
render: function() {
that = this
var loads = this.props.truck.map(function(load , i){
load.truckid = i
return (
<tr key={i} draggable="true" dragstart={that.ondragstart} dragend={that.ondragend}>
<td>
{load.load_number}
</td>
<td>
{load.stops[0].location_name}
</td>
<td>
{load.stops[1].location_name}
</td>
</tr>
)
})
return (
<div className="panel panel-primary" draggable="true">
<VehiclePanelHeading vehicleNbr={this.props.vehicleNbr}></VehiclePanelHeading>
<div className="panel-body" >
<table className="table">
<tbody>
{loads}
</tbody>
</table>
</div>
</div>
)
} });
如您所见,我正在尝试使 s 可拖动。不幸的是,这不起作用,即使我使用 Chrome 开发工具手动将其添加到浏览器的 html 中。
我已经尝试删除我到 Bootstrap 的链接,以防这与 CSS 规则有关,并且还尝试仅呈现没有动态值的 html 表格。
我看不到这个小提琴中的代码:
通过在渲染函数中设置 draggable=true 来工作,但我的不会。
提前感谢您的帮助。
编辑 添加了 dropEnd/Start 处理程序,但没有变化。
奇怪的是,如果我将 draggable=true 添加到 div.panel 容器中,它是可拖动的,而包含的 s 仍然不是。
更新
如果我用这个表创建一个快速的 .html 页面:
<table className="table">
<thead>
<tr>
<td>Name</td>
<td>Tangyness</td>
</tr>
</thead>
<tbody>
<tr draggable="true">
<td>Apple</td>
<td>4</td>
</tr>
<tr draggable="true">
<td>Orange</td>
<td>7</td>
</tr>
</tbody>
</table>
然后所需的 draggble = true 适用于表格行。但是,如果我将其粘贴到 React 渲染函数中:
return (
<div className="panel panel-primary" >
<VehiclePanelHeading vehicleNbr={this.props.vehicleNbr}></VehiclePanelHeading>
<div className="panel-body" >
<table className="table">
<thead>
<tr>
<td>Name</td>
<td>Tangyness</td>
</tr>
</thead>
<tbody>
<tr draggable="true">
<td>Apple</td>
<td>4</td>
</tr>
<tr draggable="true">
<td>Orange</td>
<td>7</td>
</tr>
</tbody>
</table>
</div>
</div>
)
然后突然间,“可拖动性”就消失了。
【问题讨论】: