2011-12-21 68 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

相关问题