Skip to content

Commit c61a283

Browse files
committedJul 13, 2014
drag hover class update and fix throwing up on memeory leak. Updated test with 1.2.29 angular
1 parent 1da186b commit c61a283

File tree

3 files changed

+64
-14
lines changed

3 files changed

+64
-14
lines changed
 

‎css/styles.css

+7-6
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ body {
4141
background-color : #aaaaaa;
4242
}
4343

44-
.on-drag-hover:before {
45-
content: 'Drop him gently';
46-
display: block;
47-
color: white;
48-
font-size: x-large;
49-
font-weight: 800;
44+
45+
.on-drag-enter{
46+
background-color : #aaaaaa;
47+
}
48+
49+
.bg-info{
50+
background-color : #aaaaaa;
5051
}

‎draganddrop.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ angular.module("ngDragDrop",[])
123123
dragging--;
124124
if (dragging == 0) {
125125
element.removeClass(dragHoverClass);
126+
element.removeClass(dragEnterClass);
126127
}
127128
}
128129

@@ -158,7 +159,7 @@ angular.module("ngDragDrop",[])
158159
return channelMatchPattern.test("," + dropChannel + ",");
159160
}
160161

161-
$rootScope.$on("ANGULAR_DRAG_START", function (event, channel) {
162+
var deregisterDragStart = $rootScope.$on("ANGULAR_DRAG_START", function (event, channel) {
162163
dragChannel = channel;
163164
if (isDragChannelAccepted(channel, dropChannel)) {
164165

@@ -173,7 +174,7 @@ angular.module("ngDragDrop",[])
173174

174175

175176

176-
$rootScope.$on("ANGULAR_DRAG_END", function (e, channel) {
177+
var deregisterDragEnd = $rootScope.$on("ANGULAR_DRAG_END", function (e, channel) {
177178
dragChannel = "";
178179
if (isDragChannelAccepted(channel, dropChannel)) {
179180

@@ -188,17 +189,17 @@ angular.module("ngDragDrop",[])
188189
});
189190

190191

191-
$rootScope.$on("ANGULAR_HOVER", function (e, channel) {
192+
var deregisterDragHover = $rootScope.$on("ANGULAR_HOVER", function (e, channel) {
192193
if (isDragChannelAccepted(channel, dropChannel)) {
193194
element.removeClass(dragHoverClass);
194195
}
195196
});
196197

197198

198199
scope.$on('$destroy', function () {
199-
$rootScope.$$listeners.ANGULAR_DRAG_END = [];
200-
$rootScope.$$listeners.ANGULAR_DRAG_START = [];
201-
$rootScope.$$listeners.ANGULAR_DRAG_HOVER = [];
200+
deregisterDragStart();
201+
deregisterDragEnd();
202+
deregisterDragHover();
202203
});
203204

204205

‎test.html

+50-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<title>AngularJS Plunker</title>
77
<script>document.write('<base href="' + document.location + '" />');</script>
88
<link rel="stylesheet" href="css/styles.css" />
9-
<script data-require="angular.js@1.1.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" data-semver="1.1.5"></script>
9+
<script data-require="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.js" data-semver="1.2.20"></script>
1010
<script src="http://pc035860.github.io/angular-highlightjs/angular-highlightjs.min.js"></script>
1111
<script src="js/app.js"></script>
1212
<script src="draganddrop.js"></script>
@@ -21,9 +21,16 @@ <h4 class="heading">
2121
</h4>
2222
</div>
2323

24+
<h3>Beasts</h3>
25+
26+
<p>Left column of beasts is not draggable and accepts both beasts and priests</p>
27+
28+
<hr>
29+
2430
<div class="row" ng-controller="MainCtrl">
2531
<div class="col-xs-6">
26-
<ul ui-on-Drop="onDrop($event,$data,men)" drop-channel="beasts,priests">
32+
<ul ui-on-Drop="onDrop($event,$data,men)" drag-enter-class="bg-info"
33+
drop-channel="beasts,priests">
2734
<li ui-draggable="false" drag="man" drag-channel="beasts"
2835

2936
on-drop-success="dropSuccessHandler($event,$index,men)"
@@ -43,6 +50,12 @@ <h4 class="heading">
4350
</div>
4451
</div>
4552

53+
<hr>
54+
55+
<h3>Priests</h3>
56+
57+
<hr>
58+
4659
<div class="row" ng-controller="MainCtrl">
4760
<div class="col-xs-6">
4861
<ul ui-on-Drop="onDrop($event,$data,men)" drop-channel="priests">
@@ -63,6 +76,41 @@ <h4 class="heading">
6376
</ul>
6477
</div>
6578
</div>
79+
80+
<hr>
81+
82+
<h3>Terrorists</h3>
83+
84+
<p>Each terrorist list item accepts a new terrorist. Shows inserting into a particular
85+
position in an array.</p>
86+
87+
<hr>
88+
89+
90+
<div class="row" ng-controller="MainCtrl">
91+
<div class="col-xs-6">
92+
<ul>
93+
<li ui-draggable="true" drag="man" drag-channel="terrorists2"
94+
drag-hover-class="bg-info"
95+
on-drop-success="dropSuccessHandler($event,$index,men)"
96+
ui-on-Drop="onDrop($event,$data,men)" drop-channel="terrorists1"
97+
ng-repeat="man in men track by $index">
98+
{{man}}
99+
</li>
100+
</ul>
101+
</div>
102+
<div class="col-xs-6">
103+
<ul>
104+
<li ui-draggable="true" drag="woman" drag-channel="terrorists1"
105+
drag-hover-class="bg-info"
106+
ui-on-Drop="onDrop($event,$data,women)" drop-channel="terrorists2"
107+
on-drop-success="dropSuccessHandler($event,$index,women)"
108+
ng-repeat="woman in women track by $index">
109+
{{woman}}
110+
</li>
111+
</ul>
112+
</div>
113+
</div>
66114
</div>
67115
</body>
68116

0 commit comments

Comments
 (0)
Please sign in to comment.