回答編集履歴

2

ES5に

2017/06/21 06:33

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36115

test CHANGED
@@ -1,20 +1,24 @@
1
- [https://jsfiddle.net/o469aw0L/](https://jsfiddle.net/o469aw0L/)
1
+ [https://jsfiddle.net/o469aw0L/2/](https://jsfiddle.net/o469aw0L/2/)
2
2
 
3
3
  ```javascript
4
4
 
5
- $('li').on('click', function(){ let clicked; return function(e){
5
+ $('#test').on('click', function(clicked){ return function(e){
6
6
 
7
7
  if (clicked){
8
8
 
9
- let x = $(clicked).index();
9
+ var x = $(clicked).index();
10
10
 
11
- let y = $(e.target).index();
11
+ var y = $(e.target).index();
12
12
 
13
- let target = Array.from($('li'));
13
+ var target = Array.from($('li'));
14
14
 
15
- [target[x],target[y]] = [target[y],target[x]];
15
+ var temp = target[x];
16
16
 
17
+ target[x] = target[y];
18
+
19
+ target[y] = temp;
20
+
17
- $('ul').append(target);
21
+ $('#test').append(target);
18
22
 
19
23
  clicked = null;
20
24
 
@@ -22,7 +26,7 @@
22
26
 
23
27
  else clicked = e.target;
24
28
 
25
- }}())
29
+ }}(null))
26
30
 
27
31
  ```
28
32
 

1

追記

2017/06/21 06:33

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36115

test CHANGED
@@ -25,3 +25,41 @@
25
25
  }}())
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ##### 追記
32
+
33
+ [https://jsfiddle.net/o469aw0L/1/](https://jsfiddle.net/o469aw0L/1/)
34
+
35
+ ヴァニラ版
36
+
37
+ ```javascript
38
+
39
+ const $id = document.getElementById.bind(document);
40
+
41
+ const $qs = (s) => Array.from(document.querySelectorAll(s));
42
+
43
+ $id('test').addEventListener('click',(clicked => e => {
44
+
45
+ if (clicked) {
46
+
47
+ let target = $qs('#test li');
48
+
49
+ let x = target.indexOf(clicked);
50
+
51
+ let y = target.indexOf(e.target);
52
+
53
+ [target[x],target[y]] = [target[y],target[x]];
54
+
55
+ $id('test').append(...target);
56
+
57
+ clicked = null;
58
+
59
+ }
60
+
61
+ else clicked = e.target;
62
+
63
+ })())
64
+
65
+ ```