jquery中on方法的优势是什么

这是一个陷阱,不要相信bind()和live()的功效,用in()。

动态生成的元素不需要单独绑定,它会处理这一点。

一个元素绑定多个事件,与上面()在同一行。

5 000个事件绑定元素,传统方法4 .2 M内存,7 2 ms,on()仅2 .2 M,1 ms。

推荐使用on()方案,长期方便,效率高。

jquery为动态生成的元素绑定事件的问题

哎呀,我以前也遇到过这个问题。
你是对的。
当您之前以这种方式绑定事件时,div 对象没有添加到 DOM 树中,因此当然无法绑定它。
当你说“你好”而对方还没有说话时,当然不会有任何反应。

您提供的编辑方法是正确的。
将事件绑定语句更改为: $(divin).on("click", function() {alert("gg"); });这样div添加到页面后就可以正确绑定事件了。

至于 jQuery 和 JavaScript 混合的问题,确实很头疼。
我以前也遇到过类似的情况,结果代码看起来一团糟。
如果用jQuery重写成功的处理方法,看起来就清晰多了。
尤其是在使用jQuery的.find()和.each()处理XML数据时,这段代码写得非常漂亮。

但是,我认为你仍然可以优化它。
例如,创建div时,可以先定义一个函数来处理div的创建和绑定事件,这样代码更加模块化。
另外,你可以先设置你创建的div元素的类名或其他属性,这在以后的CSS或JavaScript操作中会方便很多。

无论如何,这取决于你。
我认为你的代码非常好。
我还在思考这个问题,看看是否能想出更优雅的解决方案。

jquery中on()与click()的区别是什么?

说实话,当我第一次接触 jQuery 时,on 和 click 之间的区别确实让我很困惑。
我来给大家讲一下我踩坑的真实经历。

我们先谈谈点击。
这个东西确实简单粗暴,特别适合页面加载后固定的元素。
当我写留言板时,我只是从几个删除按钮开始,然后通过点击将它们捆绑在一起。
但当我改完代码后,我突然发现用户刷新页面后可以继续删除评论——因为每次加载按钮时,都是一个新的实例。
这时候click就变得胆怯了,新的按钮根本就没有事件绑定。

再看一遍。
这个东西就像一个中间人,帮你把事件处理过程外包给父元素。
后来我重组了留言板,将删除逻辑改为开启模式。
这意味着无论该按钮是最初就有的还是用户发新消息时动态生成的,只要是li中的deleteon类,点击它就可以触发删除。
具体代码我记不清了,但我记得我在ul里加了一句on('click','.deleteon',function(){...})。
现在,无论我如何添加或删除评论,点击都会正常进行。
有趣的是,这种模式特别适合复杂的页面,比如我后来接手的一个电商后端。
产品列表无限滚动,使用起来不太舒服。

不过话说回来,on确实比click需要多几行代码。
我有一个奇怪的同事,即使 on 是“过度设计”的,他也坚持使用 click。
导致批量导入产品时,新添加的删除按钮全部失效。
当时我看着那一堆崩溃日志,真想扇他一巴掌。

说白了,选择看哪一个。
对于静态内容,使用单击可以省去麻烦,但对于动态内容,请使用单击。
虽然现在很多新的框架都封装了事件委托,但是了解on的底层逻辑对于你编写复杂的交互还是很有帮助的。
例如,我最近使用 React 重构了我的项目。
虽然我不再使用 jQuery,但 On 的“将事件处理权交给父级”的想法帮助我优化了组件状态管理。