sortable, id des verschoben li elementes bekommen

  • Hallo zusammen,

    ich habe eine Unorderedlist erstellt mit dynamisch erzeugten li Elementen und mit einer id versehen. Gibt es eine Möglichkeit die id des an eine andere Stelle verschoben Elementes als auch die id des li Elementes zu bekommen vor das, das verschobene li-Element verschoben wurde. Gibt es dazu auch einen Eventlistener wie den "click", wie den Click Eventlistener:

    li.addEventListener('click', change_id())


    Danke schon mal für eure Vorschläge und viele Grüße

  • Ich vermute, Du benutzt das sortable von jQuery-UI? Und Du möchtest die ID des verschobenen Elementes bekommen und die ID des Elementes dahinter nach dem Verschieben?

    Poste doch mal deinen Code.

  • ja genau, ich benutze das jquery-UI sortable(https://jqueryui.com/sortable/). Die id des verschoben Elementes und die des Elementes dahinter.

    Hier der relevante Code

    Bei mir werden die 2 letzten Funktionen, aber nicht aufgerufen, wenn ich ein Li-element verschiebe, sondern wenn ich die übergreifende Funktion starte

  • In dem Code sehe ich gar nichts von dem sortable? Mit der API ist das, was Du vor hast, kein Problem:

    Code
            $(function () {
                $("#sortable").sortable({
                    stop: (event, ui) => {
                        console.log(ui.item.attr('id'));
                        console.log(ui.item.next().attr('id'));
                    }
                });
                $("#sortable").disableSelection();
            });
  • Danke Sempervivum.

    Das hat auf anhieb funktioniert.

    wie müsste ich das folgende korrekt eingeben, um die die id des elementes zu ändern? ich dachte an sowas. : ui.item.attr().setattribute("id", 1)

    Aber es muss auch anders gehen.

    In dem Code sehe ich gar nichts von dem sortable? Mit der API ist das, was Du vor hast, kein Problem:

    Code
            $(function () {
                $("#sortable").sortable({
                    stop: (event, ui) => {
                        console.log(ui.item.attr('id'));
                        console.log(ui.item.next().attr('id'));
                    }
                });
                $("#sortable").disableSelection();
            });
  • Zitat

    ich dachte an sowas. : ui.item.attr().setattribute("id", 1)

    setAttribute ist kein jQuery und in diesem Zusammenhang überflüssig. So sollte es funktionieren:

    ui.item.attr('id', 'die-neue-id');

    Aber warum willst Du die denn überhaupt ändern, was ist der Hintergrund bei der Sache?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!