Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] jQuery & Interface: Draggables, droppables en sortables

Pagina: 1
Acties:

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024
Ik wilde jQuery samen met Interface gebruiken om een aantal dingen te kunnen draggen en droppen en wel op zo'n manier dat alles netjes onder elkaar komt te staan, ipv dat het overlapt.

Mijn HTML bestaat schematisch gezien uit het volgende:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<div id="kolomlinks" class="container">
  <div class="box" id="widget_1">
    <div class="handle" id="dragbar_1">
    </div>
  </div>
</div>
<div id="kolomrechts" class="container">
  <div class="box" id="widget_2">
    <div class="handle" id="dragbar_2">
    </div>
  </div>
</div>

Ik heb dus twee kolommen met in elke kolom een aantal boxen. In elke box zit een handle voor het draggen. Nou mogen de boxes alleen binnen die twee geplaatst worden en mogen ze elkaar niet overlappen. Dat laatste moet met sortable gedaan worden:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function setragBars()
{
    for(var i=0; i<iWidgetIDsLength; i++)
    {
        var sID=aWidgetIDs[i];
        var sDragBarID='dragbar_'+sID;
        var sWidgetID='widget_'+sID;

        $('#'+sWidgetID).Draggable
        ({
            handle:'#'+sDragBarID,
            snapDistance:5,
            opacity:0.7,
        });
    }
    setSortables();
}
function setSortables()
{
        $('div.container').Sortable(
            {
                accept: 'box',
                helperclass: 'sortHelper',
                activeclass :   'sortableactive',
                hoverclass :    'sortablehover',
                handle: 'div.itemHeader',
                tolerance: 'pointer',
            }
        );
}

function setDropzones()
{
    $('div.container').Droppable
    ({
                accept: 'box',
                }
    });
}


Het draggen gaat opzich wel goed, maar het droppen gaat voor geen meter. De pagina staat hier Het voorbeeld op de site van Interface staat hier. Ik zie in dat voorbeeld helemaal geen Draggable en Droppable functies, terwijl het wel werkt. Probeer ik het zelf alleen met een Sortable, dan valt er niks te slepen. Ik ben nu al uren aan het zoeken naar hoe ik dit moet oplossen, maar de originele documentatie is nogal zeer (té) beknopt en via Google kom ik ook niks te weten over hoe je zoiets fatsoenlijk op moet zetten. Hopelijk heeft hier iemand ervaring met dit gedoe...

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024
Schaamteloze schop onder de kont.

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024
Fixz0red, gewoon alleen sortables instellen:
JavaScript:
1
2
3
4
5
6
$('.container').Sortable(
    {
        accept:'box',
        handle:'.dragbar',
    }
);

Accept is trouwens de enige parameter die verplicht is, maar voor mij doeleinde mag niet het hele element als handle dienen.