gpt4 book ai didi

angularjs - 使用 HTML5 和 AngularJS 拖动表格列

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

http://jsfiddle.net/asutosh/82qum/

<div ng-app='myApp'>

<div ng-controller="myCtrl">


<table border="4">
<thead>
<th ng-repeat="hd in heads">
<div draganddrop drag="handleDrag()">{{hd}}</div>
</th>
</thead>
<tr ng-repeat="row in myData">
<td ng-repeat="hd in heads">
{{row[hd]}}
</td>
</tr>

</table>
</div>

这里是 JS:

  var myApp=angular.module('myApp',[]);
myApp.controller('myCtrl',function($scope){
$scope.handleDrag=function()
{

}


$scope.heads=['name','age','company','tech'];

$scope.myData=[{name:'Jay',age:27,company:'XYZ',tech:'Js'},
{ name:'Rayn',age:30,company:'XYZ',tech:'.net'}]
});
myApp.directive('draganddrop',function(){
return{
scope:{
drag:'&'
},
link: function(scope, element) {
// this gives us the native JS object
var el = element[0];
el.draggable=true;

el.addEventListener(
'dragstart',
function(e) {


e.dataTransfer.effectAllowed = 'move';

// this.classList.add('drag');
return false;
},
false
);

el.addEventListener(
'dragend',
function(e) {

this.classList.remove('drag');
return false;
},
false
);
}
};

});

在上面的 fiddle 中,我想创建一个具有列重新排序的表,我可以将列标题设置为可拖动,但是在拖动时只有标题的图像被拖动,我希望整个列的图像应该像拖动图像,任何建议都会有所帮助。

最佳答案

以下方案适用于Chrome最新版本,本方案使用AngularJS 1.4版本实现:

代码的变化是:

var headerElem=e.target.closest('th');
var textOfHeader=angular.element(headerElem).find("a");
scope.$apply(function() {
scope[dropfn](data, textOfHeader[0]);
});

http://plnkr.co/VDygHR

关于angularjs - 使用 HTML5 和 AngularJS 拖动表格列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395363/

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