Ho il plugin jstree Semplicemente riempio questo plugin per nodo selezionato e posta i dati con ajax nel metodo di selezione del nodo. Althouh Faccio un controllo con "letChangeTrig" si chiama se stesso onChamge metodo ricorsivo a causa di I refrest albero .. ma io voglio chiamare questo quando l'utente seleziona solo ..stop jquery onChange iterazione ricorsiva
$('#tree_2').jstree({
}).on('changed.jstree', function (e, datap) {
debugger
if(!letChangeTrig)
{
letChangeTrig = true;
return;
}
$.ajax({
url: "../../Controller/ActiveDirectoryController.php5",
type: "POST",
dataType: "json",
data: params,
success: function (result) {
treeData_ = prepareObjectsforTree(result.Objects);
resfreshJSTree(treeData_);
},
error: function (a, b, c) {
}
});
});
aggiornamento:
function resfreshJSTree(treeDataa) {
letChangeTrig = false;
$('#tree_2').jstree(true).settings.core.data = treeDataa;
$('#tree_2').jstree(true).refresh();
}
e questa è la mia funzione di aggiornamento jstree che attiva il metodo onChange .. e pubblica i dati .. dopo la risposta al successo, lo chiamo di nuovo per ricostruire l'albero con i dati modificati, ma in questo modo inizia a chiamarsi senza che gli utenti selezionino e cadere in loop .. Ho bisogno di fermarlo con il controllo logico
L'oggetto evento è la e passata alla funzione di richiamata. Prova e.stopPropagation() – user888734
Ok, ora vedo, grazie –