gpt4 book ai didi

jquery - 不确定我是否完全理解 jQuery 委托(delegate)

转载 作者:行者123 更新时间:2023-12-01 03:00:58 24 4
gpt4 key购买 nike

我有一个将动态内容加载到 div 中的链接...新加载的动态内容中需要大量额外的 ajax 操作。我是否必须为成功处理程序中的每个操作创建一个新的委托(delegate)函数? (理想情况下,委托(delegate)函数是否属于成功处理程序?)我如何整合这些函数?

例如,我单击主屏幕上的“查看帖子”按钮。它将一堆帖子加载到模式窗口中。例如,在该窗口中,每个帖子可能有一个“查看评论”按钮,该按钮会进行自己的 ajax 调用并将评论直接加载到模式窗口中。

我想澄清的两件事是组织这些委托(delegate)职能的最佳实践是什么。其次,什么时候需要委托(delegate)/什么时候不需要委托(delegate)?

编辑:谢谢大家。这些都是很好的答案。我将选择 Ohgodwhy 的答案,因为他只有 245 次代表。

最佳答案

在位于 -> http://api.jquery.com/delegate/ 的 jQuery 文档中找到了对 jQuery 委托(delegate)函数的很好的引用。

委托(delegate)监视“父元素”并应用允许对所有子元素进行回调的函数,无论它们是否是动态的。

$("table").delegate("td", "click", function(){
//All actions to be performed regardless if dynamic or not.
});

值得注意的是,委托(delegate)功能已被 jQuery 1.7 中的 .on 函数取代。您可以使用 .on 功能监控所有 DOM 更改,这也是 .live 功能的替代。

监视并确保函数绑定(bind)到 DOM 加载时/之后添加的所有元素的正确语法是 ->

$("table").on("click", "td", function(){
//perform actions here for the click functions
});

编辑

如果您想以“george”类为目标所有标记,并确保函数在当前和将来加载的所有标记上运行,那么您会这样做

$(".modal_overlay").on("click", ".george", function(){
alert('I have a class of George');
//every item with a class of george when clicked will alert this.
});

这应该是有道理的。

关于jquery - 不确定我是否完全理解 jQuery 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com