Sto cercando di capire come eseguire il rollback solo su un nodo di cartella che non è stato spostato correttamente. Il codice seguente è un esempio di ciò che sto cercando di fare. Il problema si presenta quando hai selezionato un paio di cartelle e le hai spostate in un'altra cartella. Se una delle directory non viene spostata, voglio essere in grado di riportarla al suo genitore originale. Purtroppo $.jstree.rollback(data.rlbk);
esegue il rollback di tutte le cartelle che sono state selezionate nelle posizioni precedenti.Come ripristinare i nodi che non è possibile spostare in jstree
$("#tree").jstree({...}).bind("move_node.jstree", function (e, data) {
// process all selected nodes directory
data.rslt.o.each(function (i) {
// Send request.
var move = $.parseJSON($.ajax({
url: "./jstree.php",
type: 'post',
async: false,
data: {
operation: "move_dir",
....
}
}).responseText);
// When everything's ok, the reponseText will be {success: true}
// In all other cases it won't exist at all.
if(move.success == undefined){
// Here I want to rollback the CURRENT failed node.
// $.jstree.rollback(data.rlbk); will rollback all
// of the directories that have been moved.
}
}
});
C'è un modo per fare questo?
Sfortunatamente, non posso accettare questa risposta, perché quando è stato pubblicato ho già scritto un plugin jQuery simile da zero che aveva tutto ciò di cui avevo bisogno. Ci scusiamo per la mia risposta in ritardo, ma vedo gente che upgoting e quindi sento che dovrei dire perché non ho accettato alcuna risposta. Sto lasciando aperta questa domanda, quindi se qualcuno trova utile la risposta di @DaveF, si prega di revocarlo! – tftd
@tftd Sarebbe d'aiuto se potessi condividere il tuo plugin, se non ti dispiace, naturalmente. – alejosoft