2011-12-21 32 views
4

如果菜單在id="content"之外(靜態HTML),但菜單位於id="content"(動態HTML,使用​​)時,.click()事件觸發)。jQuery .click()事件不會在使用.load()創建的鏈接上觸發

點擊功能:在頭

$(document).ready(function() { 
    $("a.type").click(function() { 
     var type = $(this).data("id"); 
     $('#content').load("content.php?" + type); 
    }); 
}); 

菜單鏈接(點擊事件在這裏工作):

<li><a data-id="1" class="type">Cars</a></li> 
<li><a data-id="2" class="type">Houses</a></li> 

​​填補了這一(點擊事件此處不工作):

<div id="content"></div> 
+0

你可以發佈JSFiddle來展示一個例子嗎? – cowls 2011-12-21 22:51:37

+0

在通過AJAX加載數據之前,事件已被綁定。 Jake Feasel的答案應該解決它,但只是想你可能想知道*爲什麼*它正在發生。 – Corbin 2011-12-21 22:53:50

回答

8

$("a.type").click(function 

更改爲

$("a.type").live('click', function 

或者,而不是活的,你也可以,如果你正在使用jQuery使用$(document).on("click", "a.type", function(){}) 1.7+。

+3

'live'在jQuery 1.7+中已棄用,不應使用(使用'on'代替)。即使在1.7之前,應該使用'delegate'代替。 – 2011-12-21 22:53:30

+0

我認爲文檔現在推薦使用'on'(jquery 1.7+)或'delegate'(以前的版本)而不是'live'。 – 2011-12-21 22:54:43

+0

不是每個人都升級到1.7,所以我認爲現場是更廣泛的例子。 – 2011-12-21 22:54:57

相關問題