2016-05-01 4 views
0

Ich versuche, die ID eines Wortes in eine Liste zu pushen, sobald es mit der Drop-Funktion von jQuery UI gelöscht wird. Wenn ich das Wort ziehe und ablege, gibt mir die console.log() die richtige ID. Aber mein .push() Anruf unten tut nichts. Wie schiebe ich die angegebene ID?Push drop Element zu Array mit jQuery UI?

Ziel:

Vor Tropfen: Ein, zwei,

Nach Tropfen: Eins, Zwei, Drei,

JavaScript:

var words = ["One,Two,"]; 
document.getElementById("demo").innerHTML = words.toString(); 

$(move); 

function move() { 
    $('#moving').draggable(); 
    $('#drop').droppable({ 
    drop: handleDropEvent 
    }); 
} 

function handleDropEvent(event, ui) { 
    var draggable = ui.draggable; 
    var droppable = ui.droppable; 
    var word = ui.draggable.attr('id') 
    words.push(word) 
    console.log(word) 
    $('#moving').hide(draggable.attr); 
} 

HTML:

<p id="demo"></p> 

<div> 
    <span id="Three"> 
     <strong> Three </strong> 
    </span> 
</div> 
+0

Ihr 'words' Array enthält ein Element, das eine Zeichenfolge' "One, Two," 'ist. Sollte es nicht "eins", "zwei" sein? Anstelle von '.toString()' sollten Sie lieber '.join()' verwenden und explizit das Trennzeichen angeben, das Sie verwenden möchten. –

+0

Sie haben '# moving' und' # drop' als Ihre ziehbare und absetzbare, aber keine solche Elemente in Ihrem HTML-Beispiel – j08691

Antwort

1

Die #demo Element wird nicht automatisch aktualisiert, wenn Sie die words Variable ändern. Sie müssen es manuell aktualisieren: