所以我有这个jquery-App我绑定的地方:
等等。在我的webapp的一个div中,我做异步加载内容,包括我想要绑定“删除”和“添加”功能的元素。这些元素也有一个“btn-delete”或“btn-add”类 - 但由于内容是异步加载的,所以事件不会绑定到它们而不做任何事情。
所以我听说使用.on('click'...)函数可以在异步加载内容后立即触发,我可以重新绑定这些函数。但我必须为我想要使用的每个功能都这样做。我不想要。
我想要的是一个通用函数,它将所有先前定义的事件函数重新绑定到我加载到它的div容器中的每个元素。
有没有办法做类似的事情:
“将所有事件函数重新绑定到div-id xyz中的异步加载元素”
如果我不需要手动重新调整每个函数,那么这将使我的生活变得更加轻松。
答案 0 :(得分:16)
如果您使用委派事件处理,则永远不会重新绑定。
$('body').on('click', '.btn-delete', function(ev) {
// delete ...
});
设置一个事件处理程序,当它们随时从任何元素冒泡到正文时捕获“click”事件。它作用于与给定选择器匹配的元素中的任何“单击”。无论按钮最初是在那里还是动态添加都没关系。
您不必将处理程序放在<body>
元素上;他们可以去任何一层容器。