Domanda

Nel tentativo di creare una pagina in cui gli utenti possono cercare gli elementi sul lato sinistro della pagina, e trascinare e rilasciare le voci che vogliono sulla destra, un po 'come un carrello della spesa.

Sono stato con

 $(function() {
 $(".result").draggable({
    helper: function(event, ui) {
    return $(this).clone().children("img");
    }
    });

    $("#rightcol").droppable({
        accept: ".result",
        drop: function(event,ui){
        $(this).append($(ui.draggable).clone());
        //console.log($(ui.draggable));
        }
        });

});

per il drag & drop che funziona come speravo, ma qualunque sia l'utente trascina sul lato destro (#rightcol) si perde quando viene presentata una nuova ricerca. Ho provato a cambiare il modulo di sottoporre ad un uso Ajax con jQuery come questo

 $(document).ready(function() {
          $("#form").submit( function () {    
          $.post(
           'p_search.php',
            $(this).serialize(),
          function(data){
              //data is what i want to be draggable
              //call other function here
              $(".build").html(data).load();
            }
          );
          return false;   
        });   

 });

Il che funziona alla grande, ma i div (.result) non sono trascinabili. C'è un modo per inizializzare facilmente gli elementi (.result) senza aggiornare la pagina?

È stato utile?

Soluzione

Credo che non sono trascinabili perché sono stati creati dopo che hai definito quali elementi sono trascinabili.
(Che significa -. Sono creati dopo la chiamata $(".result").draggable(...)
Penso che si dovrebbe dare un'occhiata a dal vivo ()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top