Moi,
mitenhän saan jQueryssa bindattua jQuery UI:n draggable-widgetin dynaamisesti luotuun elementtiin. Eventtia osalta se helppoa, mutta näitä widgettejä en saa millään toimimaan.
$("#elementID").draggable(); tai esim. $(".draggable").draggable(); ja annat tuon luokan dynaamisesti luoduille elementeille jotka haluat bindata.
groovyb:n vastauksesta ei varmaan ole tässä iloa, koska tuohan ei koske kuin niitä elementtejä, jotka ovat kutsuhetkellä olemassa. Kysymys ehkä oli, onko draggable-widgetille olemassa jokin maaginen kutsu, joka löytäisi myös tulevaisuudessa ilmestyvät elementit.
Tietääkseni maagista ratkaisua näille ei ole. Etkö voi vain kutsua draggable-funktiota silloin, kun luot uusia elementtejä? Myös tapahtumankäsittelijät voi asettaa ihan samaan aikaan; delegoidut käsittelijät aiheuttavat turhaa laskentaa, ja dokumentaatiossa varoitetaankin niistä: ”Attaching many delegated event handlers near the top of the document tree can degrade performance.”
Kokeile auttaisiko kuitenkin seuraavanlainen toteutus:
$(document).on("drag", ".dynaaminen-elementti", function() { //Magic });
Päädyin itsekin tuohon Metabolixin ehdottamaan ratkaisumalliin ja se toimii kyllä hyvin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.