2012-10-17 3 views
2

Bonjour,Invoquer un événement de clic sur une ancre ajoutée dynamiquement

Veuillez aider: J'ajoute des éléments de liste dans une liste non ordonnée. À l'intérieur des éléments de la liste, j'ai une ancre qui n'a pas d'ID. J'essaye d'invoquer le gestionnaire d'événement de clic mais évidemment je fais quelque chose mal.

Liste item rendu:

this.RenderMeNav = function (params) { 
     var ul, li, a, heading; 
     var me = ARRAY.Search({ 
      List: params.Permissions, 
      Properties: ["Group"], 
      Value: "me" 
     }); 
     heading = $("<a href=\"javascript:void(0);\" class=\"heading\">Me<span class=\"icon-vertical icon-up\"/></a>"); 
     ul = $("<ul />"); 
     for (var p in me) { 
      li = $("<li></li>"); 
      a = $("<a href=\"" + me[p].Url.replace("~/", "") + "\">" + me[p].Name + "</a>"); 
      a.click(function (e) { 
       ShowProcessing(); 
       ifrm.document.location.href = $(this).attr("href"); 
       e.preventDefault(); 
      }); 
      li.append(a); 
      ul.append(li); 
     } 
     $("#menu").append(heading); 
     $("#menu").append(ul); 
    }; 

Et puis quand quelque chose est cliqué ailleurs, j'appelle cette fonction:

this.OpenSection = function (params) { 
     $("#menu li").each(function() { 
      if ($(this).text().toLowerCase() == params.Name.toLowerCase()) { 
       $(this).click(); //I FOUND THE ANCHOR AND NOW I WANT TO INVOKE IT'S CLICK EVENT 
      } 
     }); 
    } 

J'ai essayé quelques-unes des suggestions sur les autres questions qui est similaire, mais en vain.

Cordialement

Répondre

0

Vous fixer l'événement l'ancre, mais en déclenchant le clic sur l'élément de la liste. Essayez de trouver l'ancre qui se trouve dans l'élément de liste et de déclencher son clic:

this.OpenSection = function (params) { 
     $("#menu li").each(function() { 
      if ($(this).text().toLowerCase() == params.Name.toLowerCase()) { 
       $(this).find("a").trigger("click"); 
      } 
     }); 
    } 
+0

Woohooo !!!!! Merci, longue journée peut-être ...;) –

0

Afin de déclencher une déjà définir événement click vous devez utiliser la fonction trigger(),

changer si votre code:

this.OpenSection = function (params) { 
     $("#menu li").each(function() { 
      if ($(this).text().toLowerCase() == params.Name.toLowerCase()) { 
       $(this).trigger('click'); //I FOUND THE ANCHOR AND NOW I WANT TO INVOKE IT'S CLICK EVENT 
      } 
     }); 
    } 
+0

Merci pour votre réponse. Essayé. Même résultat :( –

Questions connexes