Função executa duas vezes

Oq acontece nesse caso é o seguinte:

Quando chamo o minha funcao exibe(), eu chamo um metodo na minha classe para ler um xml e montar uma lista em árvore, basicamente eu vou montando a árvore aos poucos sempre adicionando um pouco por vez.

Entao oq acontece, a primeira vez que eu executo funciona perfeitamente mandando os parametros corretos, a segunda vez tbm mas a partir da terceira ele manda os parametros da terceira vai até a minha classe monta a minha lista, porem volta a executar a as chamadas da segunda requisicao.

Jquery:

[code]
var html = “”;
var cont = 0;
var lista = new Array();

$(document).ready(function(){
var obj = $("#arvore");
carregarAjax("",obj,"");
});

function exibe(obj){
var id = $(obj).attr(“id”);
var parentId = $(obj).attr(“parentId”);
var filhos = $(obj).next();

//var indicarLista = id+parentId;
var indicarLista = id;

if(lista[id] != undefined && filhos.length>0){
	if($(filhos).is(":visible")){
		$(filhos).hide("slow");
	}
	else {
		$(filhos).show("slow");
	}
	
}
else if(lista[id] != undefined && filhos.length<=0){
	carregarLista(lista[id],$(obj));
}
else if(lista[id] == undefined){
	carregarAjax(id,$(obj),parentId);
}
return false;

}

function carregarAjax(id,local,parentId) {
$.ajax({
url:“loadJsonData.action”,
type: “POST”,
dataType: “json”,
cache:false,
async:false,
data: {id:id,parentId:parentId},
success : function (json){
carregarLista(json,local);
}
});
}

function carregarLista(json,local){
var root = “”;
if(json.root == undefined){
root = json;
}else{
root = eval(json.root);
root = root[0];
}
//var root = eval(json.root);
if(root == null){
return;
}
else{

	lista[root.id] = root;
	
	//verificar se root.notify = 0 coloca o o onclick
	
	html += "<li><div class ='link' id = '"+root.id + "' parentId ='" + root.parentId+"' onclick='exibe(this)'>" + root.text+"</div><ul>";
	for(var no in root.children){
		//alert(root[0].children[no]);
		//verificar como trabalhar com linckHashMapa
		var textoExibicao = root.children[no].text;
			html += "<li><div class='link' id = '" + root.children[no].id+"' parentId ='" + root.children[no].parentId+"' onclick='exibe(this)'>"+textoExibicao+"</div></li>";
			
	}

	html+="</ul></li>";
	$(local).html(html);
	html = "";
}

}[/code]

Página

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Emulador Arvore</title>
<script type="text/javascript" src="resources/jquery/jquery-1.7.2.js"></script>
<link rel="stylesheet" type="text/css" href="resources/css/estilos.css">
<script type="text/javascript" src="resources/jquery/json2.js"></script>
<script type="text/javascript" src="resources/jquery/funcoes.js"></script>
</head>
<body>
<div class="leftSide">
	<ul id="arvore">USSD</ul>
</div>
<div class="rightSide">
</div>
</body>
</html>

Pedaço do xml

	<mapa:no id="no1052">
			<mapa:servico ref="srvConsultarUltimoAssinante">
				<mapa:transformacaoEntrada>
					<mapa:xsl ref="ConsultarUltimoAssinante.xsl">
						<mapa:parametros>
							<mapa:param id="MSISDN" valor="#{msisdn}" />
						</mapa:parametros>
					</mapa:xsl>
				</mapa:transformacaoEntrada>
				<mapa:responseXML ref="#{xmlConsultarUltimoAssinante}" />
				<mapa:transformacaoSaida>
					<mapa:xsl ref="AvaliaConsultarUltimoAssinante.xsl" />
					<mapa:saida ref="#{resultadoAvaliacao}" />
				</mapa:transformacaoSaida>
			</mapa:servico>
			<mapa:redireciona ref="#{resultadoAvaliacao}">
				<mapa:saida id="CARTAO" ref="noCARTAO" />
				<mapa:saida id="CONTA" ref="noCONTA" />
				<mapa:saida id="CONTROLE" ref="noCONTROLE" />
				<mapa:saida id="PJ" ref="noPJ" />
				<mapa:saida id="*" ref="encaminhaErro" />
			</mapa:redireciona>
		</mapa:no>
		<mapa:no id="noCARTAO">
			<mapa:menu>
				<mapa:textoMenu texto="CARTAO.texto" />
				<mapa:resposta ref="#{respostaMenu}" />
			</mapa:menu>
			<mapa:redireciona ref="#{respostaMenu}">
				<mapa:saida id="1" ref="noCompradePacotes" />
				<mapa:saida id="2" ref="noServicos_CARTAO" />
				<mapa:saida id="3" ref="noConta" />
				<mapa:saida id="4" ref="noConsultaFranquiadeDados" />
			</mapa:redireciona>
		</mapa:no>
                                <mapa:no id="noServicos_CARTAO">
			<mapa:menu>
				<mapa:textoMenu texto="Servicos_CARTAO.texto" />
				<mapa:resposta ref="#{respostaMenu}" />
			</mapa:menu>
			<mapa:redireciona ref="#{respostaMenu}">
				<mapa:saida id="1" ref="noSigilodeChamadas" />
				<mapa:saida id="2" ref="noDesbloqueiodeAparelho,PlacaeModem" />
				<mapa:saida id="3" ref="noRecado" />
				<mapa:saida id="4" ref="noBloqueiodeChamadas" />
			</mapa:redireciona>
		</mapa:no>

Exemplo de lista que ele monta


<li>
	<div class='link' id = 'noCARTAO' parentId='no1052'>CARTAO</div>
		<ul>
			<li><div class='link' id= 'noCompradePacotes' parentId='noCARTAO'>CompradePacotes</div></li>
			<li><div class='link' id= 'noServicos_CARTAO' parentId='noCARTAO'>Servicos_CARTAO</div>
                                                      <ul>
			              <li><div class='link' id= 'noSigilodeChamadas' parentId='noServicos_CARTAO'>Sigilo de Chamadas</div></li>
			              <li><div class='link' id= 'noDesbloqueiodeAparelho,PlacaeModem' parentId='noServicos_CARTAO'>Desbloqueio de Aparelho,Placa...</div></li>
			              <li><div class='link' id= 'noRecado' parentId='noServicos_CARTAO'>Recado</div></li>
			               <li><div class='link' id= 'noBloqueiodeChamadas' parentId='noServicos_CARTAO'>Bloqueio de Chamada</div></li>
		                      </ul>
                                                </li>
			<li><div class='link' id= 'noConta' parentId='noCARTAO'>Conta</div></li>
			<li><div class='link' id= 'noConsultaFranquiadeDados' parentId='noCARTAO'>ConsultaFranquiadeDados</div></li>
		</ul>
</li>