Disabilita/abilita il menu contestuale per jQuery Dynatree non funziona
-
28-10-2019 - |
Domanda
Sto usando il jQuery dynatree insieme al menu contestuale trovato qui. Il problema che sto riscontrando è che non riesco a ottenere l'abilitazione/disabilita il menu di contesto o le singole voci nel menu per funzionare. Il plugin dice che dovrei essere in grado di farlo:
$("#contextMenu").enableContextMenu();
Ma questo non funziona per me. Ecco il menù:
<!-- Definition of context menu -->
<div id="contextMenu">
<ul id="myMenu" class="contextMenu">
<li class="resubmit"><a href="#resubmit">Resend</a></li>
</ul>
</div>
Il menu mostra e funziona bene se non metto alcuna abilitazione/disabilita, ma ci sono casi in cui la voce di menu non è disponibile, quindi devo essere in grado di controllare il suo stato. Se inserisco abilita/disabilita, il Manu non si mostra affatto.
Qualcuno può condividere come ha fatto funzionare questo?
AGGIORNAMENTO: posso ottenere il menu solo per mostrare se rimuovo il Div sopra. Quindi mostrerà, ma abilita/disabilita usando "Mymenu" non fa nulla ...
Soluzione 2
Non potevo disabilitare il menu stesso, quindi ho dovuto gestirlo dopo aver selezionato l'elemento:
switch( action )
{
case "resubmit":
//-- show verify dialog
var selectedNode = $("#tree").dynatree("getActiveNode");
if(selectedNode == null)
break;
var parentTitle = selectedNode.parent.data.title;
if( parentTitle == "Error" || parentTitle == "To Lab" || parentTitle == "From Lab" )
$('#dialog-confirm').dialog('open');
break;
default:
alert("Invalid action '" + action + "' to node " + node);
}
Controllo solo che il nodo di tipo corretto sia selezionato per poter intraprendere l'azione (guarda il genitore, che è la cartella contenente).
Altri suggerimenti
Ha riscontrato lo stesso problema, puoi effettivamente disabilitare il trigger del menu contestuale come:
$(".dynatree-title").contextMenu(false)
E riaccenderlo con vero. Dynatree-Title essendo l'elemento a cui il grilletto è legato.
Spero che questo aiuti chiunque altro che inciampa su questo.