Javascript 用于使用jquery添加的内容中的链接的函数

Javascript 用于使用jquery添加的内容中的链接的函数,javascript,jquery,dynamic,Javascript,Jquery,Dynamic,我有一个单页设计 我将所有内容“页面”放在单独的div中,然后用jquery将它们全部隐藏起来 单击菜单项时,使用html()切换页面持有者的内部内容 但是我不能在页面上使用click()或on(“click”)。。 因为它是动态添加的,并且具有不同的作用域 假设我有这样的东西: $("#menu #somepagebutton").click(function(e) { e.preventDefault(); $("#pageholder").hide().html($("#somepage"

我有一个单页设计

我将所有内容“页面”放在单独的div中,然后用jquery将它们全部隐藏起来

单击菜单项时,使用html()切换页面持有者的内部内容

但是我不能在页面上使用click()或on(“click”)。。 因为它是动态添加的,并且具有不同的作用域

假设我有这样的东西:

$("#menu #somepagebutton").click(function(e) {
e.preventDefault();
$("#pageholder").hide().html($("#somepage").html()).fadeIn();;
});
div中有一些id为“somepage”的链接

那么,使用此选项不起作用:

$("#pageholder a").click(function(e) {
    e.preventDefault();
    console.log("test");
});
它根本没有被解雇

如何调整它,使其也适用于jquery添加的内容?

事件委派:

$("#pageholder").on("click", "a", function(e) {

    e.preventDefault();

    console.log("test");

});
活动代表团:

$("#pageholder").on("click", "a", function(e) {

    e.preventDefault();

    console.log("test");

});

您需要将事件处理程序附加到动态加载的页面元素。您应该发现jquery的.on函数可以很好地实现这一点

以下是关于如何使用它,您需要知道(几乎)的一切:


您需要将事件处理程序附加到动态加载的页面元素。您应该发现jquery的.on函数可以很好地实现这一点

以下是关于如何使用它,您需要知道(几乎)的一切:


那么“a”是任何锚链,还是?我能在那里放点什么吗?@mowgli——在上面的代码中,它的目标是
锚定
——但是你可以用
#pageholder
中加载的任何动态元素替换它。解决方案与
(“#pageholder a”)完全相同。单击(函数(e){
你的代码@mowgli不起作用的原因是因为你的页面加载器html正在动态添加..因此必须委派事件。谢谢!我快疯了..直到我最终意识到这与动态添加的内容有关:)@mowgli——是的,用于动态加载的内容。处理程序在运行时绑定-因此,在运行时,如果
#pageholder
中没有内容,则处理程序将绑定为空。使用
.on
将单击绑定到
#pageholder
,每次单击发生时,它都会主动查找指定的目标元素(动态或静态)所以“a”是任何锚定链接,或者?我可以在那里放置任何东西吗?@mowgli——在它上面的代码中定位
锚定
——但是你可以用
#pageholder
中加载的任何动态元素替换它。解决方案与
(“#pageholder a”)完全相同。单击(函数(e){
你的代码@mowgli不起作用的原因是因为你的页面加载器html正在动态添加..因此必须委派事件。谢谢!我快疯了..直到我最终意识到这与动态添加的内容有关:)@mowgli——是的,用于动态加载的内容。处理程序在运行时绑定-因此,在运行时,如果
#pageholder
中没有内容,则处理程序将绑定为空。使用
.on
将单击绑定到
#pageholder
,每次单击发生时,它都会主动查找指定的目标元素(动态或静态)