2014-05-04 6 views
7

Potete dirmi come si ottiene l'evento click dell'elemento row di jstree? Faccio una demo di jstree nel mio violino. È fatto in pannello. Devi premere il tasto "apri pannello" per controllare il pannellocome ottenere l'evento click dell'elemento row di jstree?

Voglio fare clic sull'evento dell'elemento jstree per ottenerlo su click? Per la preparazione dell'albero devo premere molte volte il pulsante "aggiungi test case" e poi premere il pulsante "apri pannello".

qui è il mio violino http://jsfiddle.net/ZLe2R/6/

function addMenuItemsOfTestSuit(id){ 

var menuid = "menu_" + id; 
     var ref = $('#tree').jstree(true); 
     alert('thank') 
    ref.create_node("#", {"id" : menuid, "text" : id}); 

     ref.deselect_all(); 

} 

risposta

15

Utilizzare questo listener di eventi:

$('#tree').on("select_node.jstree", function (e, data) { alert("node_id: " + data.node.id); }); 

Cercare jsTree API events per un elenco di eventi.

EDIT: creato un violino: http://jsfiddle.net/y7ar9/4/

+0

puoi usare il violino? –

+0

buona risposta signore Ho qualche domanda –

+0

possiamo espandere l'opzione di sottomenu dopo aver cliccato su "testo" come "tc_1" e "tc_2" –

3

È possibile utilizzare

$(document).on('click', '.jstree-anchor', function(e) {...}); 

Si consiglia di spostare il gestore clicca per la propria funzione e ottenere il id dal padre del ancoraggio:

$(document).on('click', '.jstree-anchor', function(e) { 
    var anchorId = $(this).parent().attr('id'); 
    var clickId = anchorId.substring(anchorId.indexOf('_') + 1, anchorId.length); 
    onMenuItemClick(clickId, e); 
}); 
$(document).on('click', '.clickTestCaseRow', function (e) { 
    onMenuItemClick(this.id, e); 
}); 
function onMenuItemClick(clickId, e) { 
    hideDisplayView(); 
    displayNewView(clickId); 
    e.stopPropagation(); 
} 

Here is a fiddle.

+0

ora possiamo espandere solo usando ">" questa immagine –

+0

funziona con angularjs. grazie! – ThanhLD

0

Personalmente mi piace invece l'evento 'activate_node'. se si effettua un postback sulla modifica della selezione del nodo e la pagina viene ricaricata e il nodo è ancora selezionato, non si verificherà un altro evento che causerà un ciclo di postback infinito.

$('#jstree').on('activate_node.jstree', function (e, data) { 
    if (data == undefined || data.node == undefined || data.node.id == undefined) 
       return; 
    alert('clicked node: ' + data.node.id); 
});