2009-07-03 15 views
6

Estoy usando el plugin JQuery Treeview para visualizar algunos datos. Básicamente, me gustaría agregar un evento de clic a los elementos secundarios < li> que copia su innerhtml en otro div en la página. Sin embargo, no he podido asignar un evento de clic a estos elementos < li>.Asignar eventos de clics al < li > en JQuery Treeview

Esperando que alguien haya pisado este suelo antes y pueda proporcionar algo de ayuda.

Gracias.

+0

¿Ha intentado simplemente: (" #nameOfLi "). haga clic en (function() {alert ('foo');}) ;? – Peter

+1

sí - No parece adjuntar el clic ni siquiera para mí. El mismo código adjuntará un evento de clic a los elementos en cualquier lugar de la página fuera de la vista de árbol (obviamente). – WorkingWeb

+0

¿Podría publicar un fragmento de código? – Peter

Respuesta

6

Usando el marcado del ejemplo en http://docs.jquery.com/Plugins/Treeview:

$("span.file, span.folder", "#example li") 
    .click(function() { alert($(this).text()); }); 

obras. Al manejar el clic en los elementos de LI, se capturan las contracciones y la expansión de las ramas.

+1

Gracias, su comentario me hizo darme cuenta de que era la forma en que construía la vista de árbol (a través de JSON y la adición de ramas) que causaba el problema. Pude resolver mi problema asignando el evento click justo después de haber agregado las ramas generadas dinámicamente. – WorkingWeb

6

Puede usar .live construction. Para mí funciona:

$('li','ul#menu').live('click', function(){ 
    alert('Click event');  
}); 
0

Trate como esto

$('li:not(:has(>ul))', 'ul#menu').live('click', function() {    
       alert($(this).text()); 
      }); 

que se sumará evento de clic al nodo hoja (no nodo raíz)

1
<li onclick="selectNode(event, this);" id="${node2.nodeId}" class="closed"> 
    <span class="folder"> ${node2.name} </span> 
</li> 




function selectNode(event, nodeHtmlEl) { 
    // IE 
    if ($.browser.msie) { 
     window.event.cancelBubble = true; 
    } 
    if(event.stopPropagation) { 
     event.stopPropagation(); 
    } 
    alert("selectNode ID: " + $(nodeHtmlEl).attr("id")); 
} 
Cuestiones relacionadas