2013-04-21 45 views
1

我有UL,我在填充方式如下:的jQuery的點擊事件,L1標籤內的HREF

$("#dropdownFloorplanGroups").append("<li><a href='#'>" + value.Name + "</a></li>"); 

這正確地顯示在我的瀏覽器

但是我似乎無法開火關閉點擊事件,然後提醒我已設置的名稱<li></li>

我試過這個,但沒有任何事情被激發。

$('li a').click(function (e) { 
       alert($(this).find("a").text());     
      }); 

jquery點擊事件應該是什麼?

+0

,您將事件綁定在「li是li的後代」上。所以'這個'就是指那個元素,鏈接本身。你不能使用'find'來查找它中包含的鏈接,因爲它是鏈接本身。 – kapa 2013-04-21 07:28:33

回答

6

你必須使用事件委派:

$('#dropdownFloorplanGroups').on('click', 'li a', function(e) { 
    alert($(this).text());     
}); 

$('li a')將不考慮新創建的元素。

+0

哇,太快了!謝謝!它的作用就像一個魅力 – 2013-04-21 06:56:07

+0

你的原始代碼只將點擊事件應用到當代碼執行時存在的元素,而這裏給出的代碼綁定到文檔元素(總是可用),並檢查是否有任何元素點擊文檔遵循第二個參數中描述的模式,如果它符合,則觸發此函數。 – Aeolun 2013-04-21 06:59:40

+2

@Aeolun:綁定到'document'是'.live()'做的。這個綁定到'#dropdownFloorplanGroups',這個更快。 – Blender 2013-04-21 07:03:55