这是我加载内容的功能:
$("#site-nav .nav1").on('click', function () {
$(this).addClass("nav-active");
$('ul.top-level').load('assets/includes/recent.php', function () {
$(this).show();
});
event.preventDefault();
});
该内容加载到ul.top-level
罚款。
加载内容后,我尝试将类应用于新加载内容中的任何href:
$("ul.top-level li a").on('click', function () {
alert("hi");
$(this).addClass("nav-active");
});
这不起作用,警报消息也不起作用。有什么想法吗?
答案 0 :(得分:0)
值得注意的是,在哪里应用新的click
处理程序,因为当您尝试连接它们时,dom很可能没有准备就绪。但是,您可以使用live()
来解决此问题。
live()
适用于所有未来匹配的选择器,因此如果您加载ajax内容,它应自动将点击处理程序附加到它们。
$("ul.top-level li a").live('click', function () {
alert("hi");
$(this).addClass("nav-active");
});
修改:由于不推荐使用live()
,您可以使用on()
重写实时,而不是:
$(document).on('click', "ul.top-level li a", function () {
alert("hi");
$(this).addClass("nav-active");
});