não pode usar o método addChild
-
12-12-2019 - |
Pergunta
Eu estou usando o dynatree plugin para o primeiro tempo, e eu estou tentando adicionar nós de forma dinâmica.Meu código está abaixo:
function DrawTree() {
var names = GetChildName();
var rootNode = $("#ProcessRoleTree").dynatree("getRoot");
var childNode = rootNode.addChild({ title: names[0].Name });
}
Em tempo de execução é apresentado um erro
Erro de tempo de execução do Microsoft JScript:O objecto não suporta esta propriedade ou método
Eu estou faltando alguma coisa ??Eu tenho verificar que eu incluídas bibliotecas necessárias :
<script src="Jquery/jquery/jquery.js" type="text/javascript"></script>
<script src="Jquery/jquery/jquery-ui.custom.js" type="text/javascript"></script>
<script src="Jquery/jquery/jquery.cookie.js" type="text/javascript"></script>
<link href="Jquery/src/skin-vista/ui.dynatree.css" rel="stylesheet" type="text/css" />
<script src="Jquery/src/jquery.dynatree.js" type="text/javascript"></script>
Obrigado antecipadamente!
Solução
Este pode não ser o seu problema, mas vale a pena um tiro.Às vezes, quando usando jQuery com outras bibliotecas, você pode executar em conflitos com conflitos de código.jQuery usa o sinal$, como um atalho para jQuery.O dynatree biblioteca também usar o sinal de dólar para suas funções.
Eu tive esse problema quando a implementação de minha árvore e este é como eu fixo ele.Como você pode ver, eu substituído todas as '$' com 'jQuery'.
<script type="text/javascript">
jQuery.noConflict();
function DrawTree() {
var names = GetChildName();
jQuery("#ProcessRoleTree").dynatree();
var rootNode = jQuery("#ProcessRoleTree").dynatree("getRoot");
//Try adding a key
var childNode = rootNode.addChild({ title: names[0].Name, key: "001" });
}
</script>
Outras dicas
Você precisa inicializar a árvore antes de você pode chamar dynatree("getRoot")
, e.g.o mais simples exemplo
function DrawTree() {
var names = GetChildName();
$("#ProcessRoleTree").dynatree();
var rootNode = $("#ProcessRoleTree").dynatree("getRoot");
var childNode = rootNode.addChild({ title: names[0].Name });
}
deve funcionar.Em vez disso você pode passar muitas outras opções na árvore de inicialização passo, e.g.ver a documentação.