comparison src/examples/nested.html @ 24:f8c97193c772 default tip

indexOf
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 20 Jan 2026 18:48:04 -0700
parents df0f6d0d55e8
children
comparison
equal deleted inserted replaced
23:650773682588 24:f8c97193c772
16 display: inline-block; 16 display: inline-block;
17 } 17 }
18 </style> 18 </style>
19 <script src="/dad.js"></script> 19 <script src="/dad.js"></script>
20 <script> 20 <script>
21 function indexOf(a,el) {
22 for( let i=0; i<a.length; i++ ) {
23 if( a[i] === el )
24 return i;
25 }
26 return -1;
27 }
28
29 dad.whatToDrag = function(draggable) { 21 dad.whatToDrag = function(draggable) {
30 return draggable.parentNode; 22 return draggable.parentNode;
31 }; 23 };
32 24
33 dad.onEnter = function(event) { 25 dad.onEnter = function(event) {
35 let original = event.original; 27 let original = event.original;
36 let filter = original.getAttribute('drop'); 28 let filter = original.getAttribute('drop');
37 if( dropzone.getAttribute('drop') !== filter ) { 29 if( dropzone.getAttribute('drop') !== filter ) {
38 return false; 30 return false;
39 } 31 }
40 let items = document.querySelectorAll(`[drop="${filter}"]`); 32 let items = Array.from(document.querySelectorAll(`[drop="${filter}"]`));
41 let iDropzone = indexOf(items,dropzone); 33 let iDropzone = items.indexOf(dropzone);
42 let iOriginal = indexOf(items,original); 34 let iOriginal = items.indexOf(original);
43 let where = iDropzone < iOriginal ? 'beforebegin' : 'afterend'; 35 let where = iDropzone < iOriginal ? 'beforebegin' : 'afterend';
44 dropzone.insertAdjacentElement(where,original); 36 dropzone.insertAdjacentElement(where,original);
45 }; 37 };
46 38
47 function init() { 39 function init() {