Javascript 如何确保jQuery中的onclick事件应用于类的新更新元素?
我的页面上有一组带有类Javascript 如何确保jQuery中的onclick事件应用于类的新更新元素?,javascript,jquery,asynchronous,Javascript,Jquery,Asynchronous,我的页面上有一组带有类应用上下文链接的链接——只有一些菜单元素 当页面从JSON接收的某些数据加载时,会生成这些数据 然后,我应用以下单击jQuery函数,以确保当用户单击其中一个元素时,执行特定的过程: $(".app-context-link").on('click', function(e) { e.preventDefault(); // do something } 问题是,当用户单击其中一个项目时,我想突出显示他们单击的项目,对
应用上下文链接的链接
——只有一些
菜单元素
当页面从JSON接收的某些数据加载时,会生成这些数据
然后,我应用以下单击jQuery函数,以确保当用户单击其中一个元素时,执行特定的过程:
$(".app-context-link").on('click', function(e) {
e.preventDefault();
// do something
}
问题是,当用户单击其中一个项目时,我想突出显示他们单击的项目,对JSON执行一些操作,然后向用户返回一个新菜单,该菜单具有相同类的其他元素app context link
——在这种情况下,“old”onclick函数不适用于新添加的项目,对吗?然后我就不能让他们也这么做了
有人知道我如何解决这个问题吗
我知道我可能必须非常小心地用回调等方法重写所有内容,但也许jQuery中已经有了一个更简单的解决方案,我只是缺少了一些东西
作为一个奖励,如果我决定保持菜单的原样,只是突出显示单击的元素(通过附加一个类),我会怎么做?抱歉,如果最后一个问题听起来很愚蠢,但我是个新手,感觉有点困惑
谢谢大家! 您需要委派事件,例如:
$(document).on('click', ".app-context-link", function(e) {
e.preventDefault();
// do something
});
现在,选择器将在每次单击时过滤
文档
就是一个例子,通常,您希望将其绑定到最近的静态容器您需要委托事件,例如:
$(document).on('click', ".app-context-link", function(e) {
e.preventDefault();
// do something
});
function bindLink() {
$(".app-context-link").click(function() {
// do something
});
}
现在,选择器将在每次单击时过滤
document
就是一个例子,通常,您希望将其绑定到最近的静态容器
function bindLink() {
$(".app-context-link").click(function() {
// do something
});
}
现在,每次更改数据时,都可以调用绑定函数(bindLink())
现在,每次更改数据时,都可以调用绑定函数(bindLink())。这会将多个事件绑定到页面上的现有元素。为了防止出现这种情况,您需要使用
.on()
进行绑定,以便在重新绑定之前,可以先调用.off()
,在添加新的事件处理程序之前删除以前的事件处理程序。这将多个事件绑定到页面上的现有元素。为了防止出现这种情况,您需要使用.on()
进行绑定,以便在重新绑定之前,可以先调用.off()
,删除以前的事件处理程序,然后再添加新的事件处理程序。