jquery d&d na klase

Odpowiedz Nowy wątek
2011-07-21 14:09
0

Zrobiłem taką funkcje d&d

DnD = function(obj)
{
    /************************* FUNCTION START DRAG **************************/
    $('#'+obj.drag).mousedown(function ()
    {
        core.onDrag = true;
        $('#'+obj.drag).css({'position':'absolute', 'z-index':400});
        /************************ FUNCTION MOVE *************************/
        $(document).mousemove(function (e)
        {
            if(core.onDrag)
            {
                $('#'+obj.drag).css({'top':e.pageY + 'px', 'left':e.pageX + 'px'});
            }
        });
        /************************ FUNCTION DROP *************************/
        $(document).mouseup(function (e)
        {
            if(core.onDrag)
            {
                var drop = $('#'+obj.drop).offset();
                var drop_width = $('#'+obj.drop).width();
                var drop_height = $('#'+obj.drop).height();
                if(e.pageX >= drop.left && e.pageX <= drop.left + drop_width && e.pageY >= drop.top && e.pageY <= drop.top + drop_height)
                {
                    var drag_width = $('#'+obj.drag).width();
                    var drag_height = $('#'+obj.drag).height();
                    $('#'+obj.drag).css({'top':drop.top+((drop_height/2)-(drag_height/2)), 'left':drop.top+((drop_width/2)-(drag_width/2))});
                    obj.onSuccess(obj.drag);
                }
                else
                {
                    $('#'+obj.drag).css({'position':'relative', 'top':'0px', 'left':'0px'});
                }
                core.onDrag = false;
            }
        });
    });
};

Ale teraz potrzebuje zrobić nie na id elementu, ale na class i nie mam pojęcia jak to zrobić, jak sprawdzić czy element przeciągany znajduje się nad elementem o określonym atrybucie class i pobrać atrybut id tego elementu

Pozostało 580 znaków

2011-07-22 12:21
pan kuba
0

Zamień $('#'+obj.drag) na $('.nazwaKlasy'), a w funkcji mousedown używaj $(this) zamiast $('#'+obj.drag)

Pozostało 580 znaków

2011-07-22 13:10
0

źle mnie zrozumiałeś "czy element przeciągany znajduje się nad elementem o określonym atrybucie class" tzn obiekt drop ma być klasą

Może przejechać each'em przez wszystkie elementy o danej klasie i pobrać pozycje i id do tablicy, a potem pętlą for in sprawdzić czy element znajduje się nad jakimś dropem?

edytowany 1x, ostatnio: konrados, 2011-07-22 13:21

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0