回答編集履歴
2
ES5に
    
        answer	
    CHANGED
    
    | @@ -1,16 +1,18 @@ | |
| 1 | 
            -
            [https://jsfiddle.net/o469aw0L/](https://jsfiddle.net/o469aw0L/)
         | 
| 1 | 
            +
            [https://jsfiddle.net/o469aw0L/2/](https://jsfiddle.net/o469aw0L/2/)
         | 
| 2 2 | 
             
            ```javascript
         | 
| 3 | 
            -
            $(' | 
| 3 | 
            +
            $('#test').on('click', function(clicked){ return function(e){
         | 
| 4 4 | 
             
              if (clicked){
         | 
| 5 | 
            -
                 | 
| 5 | 
            +
                var x = $(clicked).index();
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                var y = $(e.target).index();
         | 
| 7 | 
            -
                 | 
| 7 | 
            +
                var target = Array.from($('li'));
         | 
| 8 | 
            +
                var temp = target[x];
         | 
| 8 | 
            -
                 | 
| 9 | 
            +
                target[x] = target[y];
         | 
| 10 | 
            +
                target[y] = temp;
         | 
| 9 | 
            -
                $(' | 
| 11 | 
            +
                $('#test').append(target);
         | 
| 10 12 | 
             
                clicked = null;
         | 
| 11 13 | 
             
              }
         | 
| 12 14 | 
             
              else clicked = e.target;
         | 
| 13 | 
            -
            }}())
         | 
| 15 | 
            +
            }}(null))
         | 
| 14 16 | 
             
            ```
         | 
| 15 17 |  | 
| 16 18 | 
             
            ##### 追記
         | 
1
追記
    
        answer	
    CHANGED
    
    | @@ -11,4 +11,23 @@ | |
| 11 11 | 
             
              }
         | 
| 12 12 | 
             
              else clicked = e.target;
         | 
| 13 13 | 
             
            }}())
         | 
| 14 | 
            +
            ```
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ##### 追記
         | 
| 17 | 
            +
            [https://jsfiddle.net/o469aw0L/1/](https://jsfiddle.net/o469aw0L/1/)
         | 
| 18 | 
            +
            ヴァニラ版
         | 
| 19 | 
            +
            ```javascript
         | 
| 20 | 
            +
            const $id = document.getElementById.bind(document);
         | 
| 21 | 
            +
            const $qs = (s) => Array.from(document.querySelectorAll(s));
         | 
| 22 | 
            +
            $id('test').addEventListener('click',(clicked => e => {
         | 
| 23 | 
            +
              if (clicked) {
         | 
| 24 | 
            +
                let target = $qs('#test li');
         | 
| 25 | 
            +
                let x = target.indexOf(clicked);
         | 
| 26 | 
            +
                let y = target.indexOf(e.target);
         | 
| 27 | 
            +
                [target[x],target[y]] = [target[y],target[x]];
         | 
| 28 | 
            +
                $id('test').append(...target);
         | 
| 29 | 
            +
                clicked = null;
         | 
| 30 | 
            +
              }
         | 
| 31 | 
            +
              else clicked = e.target;
         | 
| 32 | 
            +
            })())
         | 
| 14 33 | 
             
            ```
         | 
