2015-09-15 29 views
5

jstree eklentisi var Sadece bu eklentiyi seçilen düğümle doldurup düğüm seçim yönteminde ajax ile veri gönderiyorum. Althouh .. Ben ağaç refrest yinelemeli nedeniyle bu yöntemi kendini onChamge çağrı "letChangeTrig" ile bir denetimi yapmak .. ama kullanıcı sadece seçtiğimde bu aramak istiyorumdur jquery onChange özyinelemeli yineleme

$('#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) { 

     } 
    }); 
}); 

yenileme:

function resfreshJSTree(treeDataa) { 
    letChangeTrig = false; 
    $('#tree_2').jstree(true).settings.core.data = treeDataa; 
    $('#tree_2').jstree(true).refresh(); 

} 

ve bu, onChange yöntemini tetikleyen jstree yenileme işlevim .. ve veri gönderimi .. başarıya geri dönüşten sonra bunu tekrar ağaç verileriyle değiştirdim ancak bu şekilde kullanıcı seçilmeden kullanıcı olarak arama yapmaya başlıyor. döngü içine düşmek .. Ben mantıksal kontrol

tarafından durdurmak gerekiyor

cevap

4

jQuery event.stopPropagation() yöntemini denediniz mi? Bir olayın ana öğelere iletilmesini durdurur ve herhangi bir üst olay işleyicisinin yürütülmesini engeller.

+1

Olay nesnesiniz e, geri arama işlevine geçirilen e'dir. E.stopPropagation'ı deneyin() – user888734

+0

Tamam şimdi görüyorum, teşekkürler –