2012-10-17 21 views
2

好日子,調用單擊事件的動態添加錨

請幫助:我添加列表項爲無序列表。在列表項中我有一個沒有ID的錨點。我試圖調用click事件處理程序,但顯然我做錯了什麼。

列表項渲染:

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); 
    }; 

,然後點擊別的東西的時候,我調用這個函數:

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 
      } 
     }); 
    } 

我嘗試了一些關於這是類似的其他問題的建議,但無濟於事。

問候

回答

0

你的情況下安裝到錨點,但觸發列表項的點擊。嘗試找到列表項中的錨並觸發它的點擊:

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

嗚嗚嗚!!!!!謝謝,好日子也許......;) –

0

爲了觸發你需要使用的功能trigger()已定義的點擊事件,

所以你的代碼更改爲:

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

感謝您的回覆。試過了。同樣的結果。 :( –